Rigid Geometric Algebra
rga_wiki
https://rigidgeometricalgebra.org/wiki/index.php?title=Main_Page
MediaWiki 1.40.0
first-letter
Media
Special
Talk
User
User talk
Rigid Geometric Algebra
Rigid Geometric Algebra talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Main Page
0
1
1
2023-07-15T01:28:28Z
MediaWiki default
2
wikitext
text/x-wiki
<strong>MediaWiki has been installed.</strong>
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing list]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]
11cef88175cf81168a86e7c0327a5b2d7a1920f5
2
1
2023-07-15T05:23:23Z
Eric Lengyel
1
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf x$$, denoted by $$\operatorname{gr}(\mathbf x)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf x$$. Denoted by $$\operatorname{ag}(\mathbf x)$$, the antigrade of $$\mathbf x$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Reverses]]
* [[Bulk and weight]]
* [[Attitude]]
* [[Duality]]
* [[Geometric norm]]
* [[Geometric property]]
* [[Unitization]]
=== Products and other binary operations ===
* [[Geometric products]]
* [[Exterior products]]
* [[Interior products]]
* [[Dot products]]
* [[Join and meet]]
* [[Projections]]
* [[Commutators]]
* [[Euclidean distance]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
cffc7180b98f856a771b3ba6da2fb31eaacbc2b5
File:Basis.svg
6
2
3
2023-07-15T05:24:03Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Motor
0
3
4
2023-07-15T05:27:08Z
Eric Lengyel
1
Created page with "[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\mathbf L$$ and a displacement along the same line.]] A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector..."
wikitext
text/x-wiki
[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\mathbf L$$ and a displacement along the same line.]]
A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ .
To possess the [[geometric property]], the components of $$\mathbf Q$$ must satisfy the equation
:$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ .
Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles’ theorem, all proper rigid motions in 3D space are screw motions.
An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]].
== Simple Motors ==
If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line.
In the case of a pure translation, the motor $$\mathbf T$$ is given by
:$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ ,
and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$.
In the case of a pure rotation, the motor $$\mathbf R$$ is given by
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$.
== Motors Built from Geometry ==
Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table.
{| class="wikitable"
! Motor|| Description
|-
| style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$.
$$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
$$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}
=\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\
+\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\
+\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\
+\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$.
$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$.
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
|}
== Norm ==
The [[bulk norm]] of a motor $$\mathbf Q$$ is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ .
The [[geometric norm]] of a motor $$\mathbf Q$$ is thus
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$.
== Exponential Form ==
A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ .
This expands to
:$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ ,
and replacing the [[line]] $$\boldsymbol l$$ with its components gives us
:$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ .
A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ .
The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation.
== Logarithm ==
Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations
:$$Q_{mw} = -d\sin\phi$$
:$$Q_{vw} = \cos\phi$$ .
Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then,
:$$d = -\dfrac{Q_{mw}}{s}$$
:$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ .
If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required.
The components of $$\boldsymbol l$$ are then given by
:$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$
:$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ .
In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$.
== Square Root ==
The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case.
Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ ,
where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ .
Applying several more trigonometric identities, we now observe
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ .
The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ ,
which means that
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ .
The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields
:$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ .
The square root of a general motor $$\mathbf Q$$ is thus given by
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ .
If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ .
== Factorization ==
Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating
:$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ .
The motor $$\mathbf T$$ is then given by
:$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ .
The original motor $$\mathbf Q$$ can now be expressed as
:$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ ,
where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors.
== Conversion from Motor to Matrix ==
Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices
:$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Motor ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant +1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$
:$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$
:$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$
:$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$
:$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$
:$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$
:$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$
:$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$
:$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$
If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate
:$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ ,
where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by
$$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$
$$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$
$$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$
$$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ .
== Motor Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)p_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})p_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})p_z + 2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vw}Q_{mx} - Q_{vx}Q_{mw})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2Q_{vz}^2 -2Q_{vx}^2))p_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})p_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})p_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vw}Q_{my} - Q_{vy}Q_{mw})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2))p_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})p_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})p_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vw}Q_{mz} - Q_{vz}Q_{mw})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{vx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{vy} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{vy} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{vz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{vz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{vx} + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(Q_{vy}Q_{my} + Q_{vz}Q_{mz})l_{vx} + 2(Q_{vy}Q_{mx} + Q_{vx}Q_{my} - Q_{vz}Q_{mw} - Q_{vw}Q_{mz})l_{vy} + 2(Q_{vz}Q_{mx} + Q_{vx}Q_{mz} + Q_{vy}Q_{mw} + Q_{vw}Q_{my})l_{vz} + (1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{mx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{my} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(Q_{vz}Q_{mz} + Q_{vx}Q_{mx})l_{vy} + 2(Q_{vz}Q_{my} + Q_{vy}Q_{mz} - Q_{vx}Q_{mw} - Q_{vw}Q_{mx})l_{vz} + 2(Q_{vx}Q_{my} + Q_{vy}Q_{mx} + Q_{vz}Q_{mw} + Q_{vw}Q_{mz})l_{vx} + (1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{my} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{mz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(Q_{vx}Q_{mx} + Q_{vy}Q_{my})l_{vz} + 2(Q_{vx}Q_{mz} + Q_{vz}Q_{mx} - Q_{vy}Q_{mw} - Q_{vw}Q_{my})l_{vx} + 2(Q_{vy}Q_{mz} + Q_{vz}Q_{my} + Q_{vx}Q_{mw} + Q_{vw}Q_{mx})l_{vy} + (1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{mz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{mx} + 2(Q_{vy}Q_{vz} + 2Q_{vx}Q_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)g_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})g_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)g_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})g_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)g_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})g_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vx}Q_{mw} - Q_{vw}Q_{mx})g_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vy}Q_{mw} - Q_{vw}Q_{my})g_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vz}Q_{mw} - Q_{vw}Q_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Flector]]
* [[Translation]]
* [[Rotation]]
1b308d97beb1f892531d10a33af37ca02a56afa2
File:Proper isom.svg
6
4
5
2023-07-15T05:27:33Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Attitude
0
5
6
2023-07-15T05:29:38Z
Eric Lengyel
1
Created page with "The attitude function, denoted by $$\operatorname{att}$$, extracts the attitude of a geometry and returns a purely directional object. The attitude function is defined as :$$\operatorname{att}(\mathbf x) = \mathbf x \vee \overline{\mathbf e_4}$$ . The attitude of a [[line]] is the line's direction as a vector, and the attitude of a [[plane]] is the plane's normal as a bivector. The following table lists the attitude for the main types in the 4D rigid geometric algebra..."
wikitext
text/x-wiki
The attitude function, denoted by $$\operatorname{att}$$, extracts the attitude of a geometry and returns a purely directional object. The attitude function is defined as
:$$\operatorname{att}(\mathbf x) = \mathbf x \vee \overline{\mathbf e_4}$$ .
The attitude of a [[line]] is the line's direction as a vector, and the attitude of a [[plane]] is the plane's normal as a bivector.
The following table lists the attitude for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Attitude
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\operatorname{att}(\mathbf z) = y \mathbf e_{321}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\operatorname{att}(\mathbf p) = p_w \mathbf 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\operatorname{att}(\boldsymbol l) = l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\operatorname{att}(\mathbf g) = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
|}
9510730854e4bad2b527cc19847fdbea1e62f0f8
Bulk and weight
0
6
7
2023-07-15T05:31:09Z
Eric Lengyel
1
Created page with "The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon. An element is [[unitized]] when the magnitude of its weight is one. The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal..."
wikitext
text/x-wiki
The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon.
An element is [[unitized]] when the magnitude of its weight is one.
The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$
|}
== See Also ==
* [[Attitude]]
* [[Geometric norm]]
* [[Unitization]]
* [[Complements]]
0a0a22918cb421f8a9e7342b3c08ca0b9dabb383
8
7
2023-07-15T05:33:25Z
Eric Lengyel
1
wikitext
text/x-wiki
The components of an element of a rigid geometric algebra can be divided into two groups called the ''bulk'' and the ''weight'' of the element. The bulk of an element $$\mathbf x$$ is denoted by $$\mathbf x_\unicode{x25CF}$$, and it consists of the components of $$\mathbf x$$ that do not have the projective basis vector as a factor. The weight is denoted by $$\mathbf x_\unicode{x25CB}$$, and it consists of the components that do have the projective basis vector as a factor. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, the bulk is thus all components that do not contain the factor $$\mathbf e_4$$, and the weight is all components that do contain the factor $$\mathbf e_4$$.
The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon.
An element is [[unitized]] when the magnitude of its weight is one.
The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$
|}
== See Also ==
* [[Attitude]]
* [[Geometric norm]]
* [[Unitization]]
* [[Complements]]
4eb1453abc20d42b3252034d9a85043fd08ebbcb
Line
0
7
9
2023-07-15T05:34:26Z
Eric Lengyel
1
Created page with "[[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ . The components $$(l_{vx}, l_{vy}, l_{vz})$$ corr..."
wikitext
text/x-wiki
[[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ .
The components $$(l_{vx}, l_{vy}, l_{vz})$$ correspond to the line's direction, and the components $$(l_{mx}, l_{my}, l_{mz})$$ correspond to the line's moment. (These are equivalent to the six Plücker coordinates of a line.) To possess the [[geometric property]], the components of $$\boldsymbol l$$ must satisfy the equation
:$$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ ,
which means that, when regarded as vectors, the direction and moment of a line are perpendicular.
The [[bulk]] of a line is given by its $$mx$$, $$my$$, and $$mz$$ coordinates, and the [[weight]] of a line is given by its $$vx$$, $$vy$$, and $$vz$$ coordinates. A line is [[unitized]] when $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$. The [[attitude]] of a line is the vector $$l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ corresponding to its direction.
When used as an operator in the sandwich with the [[geometric antiproduct]], a line is a specific kind of [[motor]] that performs a 180-degree rotation about itself.
<br clear="right" />
== Lines at Infinity ==
[[Image:line_infinity.svg|400px|thumb|right|'''Figure 2.''' A line at infinity consists of all points at infinity in directions perpendicular to the moment $$\mathbf m$$.]]
If the weight of a line is zero (i.e., its $$vx$$, $$vy$$, and $$vz$$ coordinates are all zero), then the line is contained in the horizon infinitely far away in all directions perpendicular to its moment $$\mathbf m = (l_{mx}, l_{my}, l_{mz})$$, regarded as a vector, as shown in Figure 2. Such a line cannot be unitized, but it can be normalized by dividing by its [[bulk norm]].
When the moment $$\mathbf m$$ is regarded as a bivector, a line at infinity can be thought of as all directions $$\mathbf v$$ parallel to the moment, which satisfy $$\mathbf m \wedge \mathbf v = 0$$.
<br clear="right" />
== Skew Lines ==
[[Image:skew_lines.svg|400px|thumb|right|'''Figure 3.''' The line $$\mathbf j$$ connecting skew lines.]]
Given two skew lines $$\boldsymbol l$$ and $$\mathbf k$$, as shown in Figure 3, a third line $$\mathbf j$$ that contains a point on each of the lines $$\boldsymbol l$$ and $$\mathbf k$$ is given by the axis of the [[motor]] $$\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}$$. The line $$\mathbf j$$ can be found by first calculating the line
:$$\mathbf i = [\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_- = (l_{vy} k_{vz} - l_{vz} k_{vy})\mathbf e_{41} + (l_{vz} k_{vx} - l_{vx} k_{vz})\mathbf e_{42} + (l_{vx} k_{vy} - l_{vy} k_{vx})\mathbf e_{43} + (l_{vy} k_{mz} - l_{vz} k_{my} + l_{my} k_{vz} - l_{mz} k_{vy})\mathbf e_{23} + (l_{vz} k_{mx} - l_{vx} k_{mz} + l_{mz} k_{vx} - l_{mx} k_{vz})\mathbf e_{31} + (l_{vx} k_{my} - l_{vy} k_{mx} + l_{mx} k_{vy} - l_{my} k_{vx})\mathbf e_{12}$$
and then orthogonalizing its direction and moment to obtain
:$$\mathbf j = i_{vx} \mathbf e_{41} + i_{vy} \mathbf e_{42} + i_{vz} \mathbf e_{43} + (i_{mx} - s i_{vx})\mathbf e_{23} + (i_{my} - s i_{vy})\mathbf e_{31} + (i_{mz} - s i_{vz})\mathbf e_{12}$$ ,
where
:$$s = \dfrac{i_{vx}i_{mx} + i_{vy}i_{my} + i_{vz}i_{mz}}{i_{vx}^2 + i_{vy}^2 + i_{vz}^2}$$ .
If $$l_{vx}k_{vx} + l_{vy}k_{vy} + l_{vz}k_{vz} = 0$$, meaning that the directions of the two lines are perpendicular, then $$\mathbf j = \mathbf i$$.
The direction of $$\mathbf j$$ is perpendicular to the directions of $$\boldsymbol l$$ and $$\mathbf k$$, and it contains the closest points of approach between $$\boldsymbol l$$ and $$\mathbf k$$. The points themselves can then be found by calculating $$(\mathbf j \wedge \operatorname{att}(\boldsymbol l)) \vee \mathbf k$$ and $$(\mathbf j \wedge \operatorname{att}(\mathbf k)) \vee \boldsymbol l$$, where $$\operatorname{att}$$ is the [[attitude]] function.
<br clear="right" />
== See Also ==
* [[Point]]
* [[Plane]]
c1ae230e63c248675662980da21c7dc56ae3d419
File:Line.svg
6
8
10
2023-07-15T05:34:35Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Line infinity.svg
6
9
11
2023-07-15T05:34:45Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Skew lines.svg
6
10
12
2023-07-15T05:34:58Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Join and meet
0
11
13
2023-07-15T05:38:56Z
Eric Lengyel
1
Created page with "The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf..."
wikitext
text/x-wiki
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
:$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Commutator || Description || Illustration
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$[\mathbf p, \mathbf q]^{\Large\unicode{x27D1}}_-$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
| style="padding: 12px;" | [[Image:point_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | $$[\boldsymbol l, \mathbf p]^{\Large\unicode{x27D1}}_+$$
| style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$.
Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$.
| style="padding: 12px;" | [[Image:line_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$[\mathbf g, \mathbf h]^{\Large\unicode{x27C7}}_-$$
| style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect.
Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
| style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$
| style="padding: 12px;" | $$[\boldsymbol l, \mathbf g]^{\Large\unicode{x27C7}}_+$$
| style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$.
Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \mathbf p =\, &-g_xp_w \mathbf e_{41} - g_yp_w \mathbf e_{42} - g_zp_w \mathbf e_{43} \\ +\, &(g_yp_z - g_zp_y)\,\mathbf e_{23} + (g_zp_x - g_xp_z)\,\mathbf e_{31} + (g_xp_y - g_yp_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$[\mathbf p, \mathbf g]^{\Large\unicode{x27C7}}_+$$
| style="padding: 12px;" | Line perpendicular to plane $$\mathbf g$$ passing through point $$\mathbf p$$.
| style="padding: 12px;" | [[Image:plane_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p =\, &-l_{vx} p_w \mathbf e_{423} - l_{vy} p_w \mathbf e_{431} - l_{vz} p_w \mathbf e_{412} \\ +\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | $$-[\mathbf p, \boldsymbol l]^{\Large\unicode{x27C7}}_+$$
| style="padding: 12px;" | Plane perpendicular to line $$\boldsymbol l$$ containing point $$\mathbf p$$.
| style="padding: 12px;" | [[Image:line_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \boldsymbol l =\, &(g_zl_{vy} - g_yl_{vz})\,\mathbf e_{423} + (g_xl_{vz} - g_zl_{vx})\,\mathbf e_{431} + (g_yl_{vx} - g_xl_{vy})\,\mathbf e_{412} \\ -\, &(g_xl_{mx} + g_yl_{my} + g_zl_{mz})\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | $$[\boldsymbol l, \mathbf g]^{\Large\unicode{x27C7}}_-$$
| style="padding: 12px;" | Plane perpendicular to plane $$\mathbf g$$ containing line $$\boldsymbol l$$.
Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:plane_weight_join_line.svg|250px]]
|}
== See Also ==
* [[Exterior products]]
* [[Commutators]]
e1aa786b08a5979d11fd49e0590f8ea370cdee55
File:Point join point.svg
6
12
14
2023-07-15T05:39:12Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Line join point.svg
6
13
15
2023-07-15T05:39:22Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Plane meet plane.svg
6
14
16
2023-07-15T05:39:32Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Line meet plane.svg
6
15
17
2023-07-15T05:39:41Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Rigid Geometric Algebra for 2D Space
0
19
21
2023-07-15T05:46:01Z
Eric Lengyel
1
Created page with "== Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_..."
wikitext
text/x-wiki
== Introduction ==
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.
__TOC__
<br clear="right" />
== Unary Operations ==
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.
[[Image:Unary201.svg|480px]]
== Geometric Products ==
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to −1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
[[Image:GeometricProduct201.svg|360px]]
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.
[[Image:GeometricAntiproduct201.svg|360px]]
== Points ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
== Lines ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form
:$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ .
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$l_x^2 + l_y^2 = 1$$.
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$l_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.
== Bulk and Weight ==
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_x \mathbf e_{23} + l_y \mathbf e_{31}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$
|}
== Unitization ==
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$p_z^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$l_x^2 + l_y^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$
|}
== Geometric Norm ==
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = |l_z|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$
|}
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_x^2 + l_y^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$
|}
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \dfrac{|l_z|}{\sqrt{l_x^2 + l_y^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$.
Half the distance that the origin is moved by the [[flector]] $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== Join and Meet ==
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The points and lines appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$
:$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
:$$\mathbf k = k_x \mathbf e_{23} + k_y \mathbf e_{31} + k_z \mathbf e_{12}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Commutator || Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$
| style="padding: 12px;" | $$[\mathbf p, \mathbf q]^{\Large\unicode{x27D1}}_-$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
|-
| style="padding: 12px;" | $$\boldsymbol l \vee \mathbf k = (l_yk_z - k_yl_z)\mathbf e_1 + (l_zk_x - l_xk_z)\mathbf e_2 + (l_xk_y - l_yk_x)\mathbf e_3$$
| style="padding: 12px;" | $$[\mathbf k, \boldsymbol l]^{\Large\unicode{x27C7}}_-$$
| style="padding: 12px;" | Point where lines $$\boldsymbol l$$ and $$\mathbf k$$ intersect.
Point at infinity if $$\boldsymbol l$$ and $$\mathbf k$$ are parallel.
|-
| style="padding: 12px;" | $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p = l_yp_z\mathbf e_{23} - l_xp_z\mathbf e_{31} + (l_xp_y - l_yp_x)\mathbf e_{12}$$
| style="padding: 12px;" | $$-[\mathbf p, \boldsymbol l]^{\Large\unicode{x27C7}}_+$$
| style="padding: 12px;" | Line perpendicular to line $$\boldsymbol l$$ passing through point $$\mathbf p$$.
|}
== Projections ==
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.
{| class="wikitable"
! Formula !! Description
|-
| style="padding: 12px;" | $$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p\right) \vee \boldsymbol l = (l_x^2 + l_y^2)\mathbf p - (l_xp_x + l_yp_y + l_zp_z)(l_x \mathbf e_1 + l_y \mathbf e_2)$$
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.
|-
| style="padding: 12px;" | $$\left(\underline{\mathbf p_\smash{\unicode{x25CB}}} \vee \boldsymbol l\right) \wedge \mathbf p = l_xp_z^2 \mathbf e_{23} + l_yp_z^2 \mathbf e_{31} - (l_xp_x + l_yp_y)p_z \mathbf e_{12}$$
| style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.
|}
Projecting the origin onto a line gives us the following formula for the point on a line $$\boldsymbol l$$ closest to the origin.
:$$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf e_3\right) \vee \boldsymbol l = -l_xl_z \mathbf e_1 - l_yl_z \mathbf e_2 + (l_x^2 + l_y^2)\mathbf e_3$$
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.
:$$\left(\underline{\mathbf p_\smash{\unicode{x25CF}}} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$
== Motors ==
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .
== Flectors ==
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form
:$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ .
A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line.
8bfab698d804be94f9430281a2b7093deb67a186
File:Basis201.svg
6
20
22
2023-07-15T05:46:09Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Unary201.svg
6
21
23
2023-07-15T05:46:19Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:GeometricProduct201.svg
6
22
24
2023-07-15T05:46:34Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:GeometricAntiproduct201.svg
6
23
25
2023-07-15T05:46:44Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Magnitude
0
24
26
2023-07-15T05:50:33Z
Eric Lengyel
1
Created page with "A ''magnitude'' is a quantity that represents a concrete distance of some kind. In rigid geometric algebra, a magnitude $$\mathbf z$$ is composed of two components, a scalar and an antiscalar, as follows: :$$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ Magnitudes are homogeneous just like everything else in a projective geometric algebra. This means it has both a [[bulk]] and a [[weight]], and it is [[unitized]] by making the magnitude of its weight one. ===..."
wikitext
text/x-wiki
A ''magnitude'' is a quantity that represents a concrete distance of some kind. In rigid geometric algebra, a magnitude $$\mathbf z$$ is composed of two components, a scalar and an antiscalar, as follows:
:$$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
Magnitudes are homogeneous just like everything else in a projective geometric algebra. This means it has both a [[bulk]] and a [[weight]], and it is [[unitized]] by making the magnitude of its weight one.
=== Examples ===
* The [[geometric norm]] produces a magnitude that gives the perpendicular distance between an object and the origin. This is also half the distance that the origin is moved by an object used as an operator.
* [[Euclidean distances]] between objects are expressed as magnitudes given by the sum of the [[bulk norms]] and [[weight norms]] of [[commutators]].
* Exponentiating the magnitude $$d\mathbf 1 + \phi {\large\unicode{x1d7d9}}$$ produces a [[motor]] for which $$d/\phi$$ is the pitch of the screw transformation.
== See Also ==
* [[Geometric norm]]
* [[Unitization]]
c8fcae29bb1a879b192c0764e7b91c565ad8c02a
Transformation groups
0
25
27
2023-07-15T05:52:29Z
Eric Lengyel
1
Created page with "In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ or by a [[flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_..."
wikitext
text/x-wiki
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
or by a [[flector]] $$\mathbf F$$ of the form
:$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ .
Under the [[geometric antiproduct]] $$\unicode{x27C7}$$, arbitrary products of these operators form the Euclidean group E(3) with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$.
Symmetrically, every dual Euclidean isometry of 3D space can be represented by a [[dual motor]] $$\mathbf Q$$ of the form
:$$\mathbf Q = Q_{vx} \mathbf e_{23} + Q_{vy} \mathbf e_{31} + Q_{vz} \mathbf e_{12} - Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{41} + Q_{my} \mathbf e_{42} + Q_{mz} \mathbf e_{43} - Q_{mw} \mathbf 1$$
or by a [[dual flector]] $$\mathbf F$$ of the form
:$$\mathbf F = F_{px} \mathbf e_{423} + F_{py} \mathbf e_{431} + F_{pz} \mathbf e_{412} + F_{pw} \mathbf e_{321} - F_{gx} \mathbf e_1 - F_{gy} \mathbf e_2 - F_{gz} \mathbf e_3 - F_{gw} \mathbf e_4$$ .
Under the [[geometric product]] $$\unicode{x27D1}$$, arbitrary products of these operators form the dual Euclidean group DE(3) with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde F}$$.
The [[geometric product]] corresponds to transform composition in the group DE(3), and the [[geometric antiproduct]] corresponds to transform composition in the group E(3). [[Reflections]] across planes are represented by [[antivectors]] (having [[antigrade]] one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, [[dual reflections]] across points are represented by [[vectors]] (having [[grade]] one), and they join at higher-dimensional invariants under the geometric product. A sandwich product $$\mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ transforms the space of $$\mathbf x$$ with an element of DE(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of E(3). Symmetrically, a sandwich product $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ transforms the space of $$\mathbf x$$ with an element of E(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of DE(3).
The groups E(''n'') and DE(''n'') are isomorphic, and they each contain the orthogonal group O(''n'') as a common subgroup. The [[complement]] operation provides a two-way mapping between transforms associated with members of E(''n'') and DE(''n''). The groups E(''n'') and DE(''n'') have a number of subgroups, and the hierarchical relationships among them are shown in the figure below. In particular, the Euclidean group E(''n'') contains the special Euclidean subgroup SE(''n'') consisting of all combinations of ordinary [[rotations]] and [[translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even antigrade. Correspondingly, the dual Euclidean group DE(''n'') contains the dual special Euclidean subgroup DSE(''n'') consisting of all combinations of [[dual rotations]] and [[dual translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even grade. The subgroups SE(''n'') and DSE(''n'') further contain translation subgroups T(''n'') and DT(''n''), respectively.
[[Image:Groups.svg|800px]]
Transforms about invariants containing the origin are the same in both E(''n'') and DE(''n''), and they constitute the common subgroup O(''n''). Every member of O(''n'') has a representation that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, conventional [[quaternions]] $$\mathbf q$$ have two representations, one that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ and another that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$.
In terms of matrix multiplication, a general element of the group E(''n'') transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form
:$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf t_{n \times 1} \\ \mathbf 0_{1 \times n} & 1 \end{bmatrix}$$ ,
where the $$n \times n$$ submatrix $$\mathbf m$$ is orthogonal. A general element of the corresponding group DE(''n'') transforms points with matrices of the form
:$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf 0_{n \times 1} \\ \mathbf t_{1 \times n} & 1 \end{bmatrix}$$ .
In the special subgroups SE(''n'') and DSE(''n''), the submatrix $$\mathbf m$$ has a determinant of +1. In the translation subgroups T(''n'') and DT(''n''), $$\mathbf m$$ is the identity matrix. Finally, when $$\mathbf t = \mathbf 0$$, the two matrices above have the same form and belong to O(''n'').
The isomorphic mapping between E(''n'') and DE(''n'') is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of E(''n''), then the corresponding element of DE(''n'') is given by $$(\mathbf M^{-1})^{\text T}$$. Of course, this operation is an involution, and the mapping works both ways.
== See Also ==
* [[Motor]]
* [[Flector]]
a33aeb5318e5cb03319f71337843761476419818
File:Groups.svg
6
26
28
2023-07-15T05:52:36Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Transflection
0
27
29
2023-07-15T05:54:31Z
Eric Lengyel
1
Created page with "A ''transflection'' is an improper isometry of Euclidean space consisting of a [[reflection]] through a plane and a [[translation]] parallel to the same plane. All combinations of a reflection and a translation, even if the original translation vector is not parallel to the original reflection plane, can be formulated as a transflection with respect to some plane. The specific kind of [[flector]] :$$\mathbf F = F_{px} \mathbf e_{1} + F_{py} \mathbf e_{2} + F_{pz} \math..."
wikitext
text/x-wiki
A ''transflection'' is an improper isometry of Euclidean space consisting of a [[reflection]] through a plane and a [[translation]] parallel to the same plane. All combinations of a reflection and a translation, even if the original translation vector is not parallel to the original reflection plane, can be formulated as a transflection with respect to some plane.
The specific kind of [[flector]]
:$$\mathbf F = F_{px} \mathbf e_{1} + F_{py} \mathbf e_{2} + F_{pz} \mathbf e_{3} + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ ,
in which $$F_{pw} = 0$$, performs a reflection through the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ and a translation by twice the displacement vector given by the cross product $$(F_{gx}, F_{gy}, F_{gz}) \times (F_{px}, F_{py}, F_{pz})$$.
By the [[geometric property]], we must have $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} = 0$$, so the vector $$(F_{px}, F_{py}, F_{pz})$$ and the displacement vector are both parallel to the plane $$\mathbf g$$.
== Calculation ==
The exact transflection calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(2F_{gy}^2 + 2F_{gz}^2 - 1)q_x - 2F_{gx} F_{gy} q_y - 2F_{gz} F_{gx} q_z + 2(F_{gy} F_{pz} - F_{gz} F_{py} - F_{gx} F_{gw})q_w\right]\mathbf e_1 \\ +\, &\left[(2F_{gz}^2 + 2F_{gx}^2 - 1)q_y - 2F_{gy} F_{gz} q_z - 2F_{gx} F_{gy} q_x + 2(F_{gz} F_{px} - F_{gx} F_{pz} - F_{gy} F_{gw})q_w\right]\mathbf e_2 \\ +\, &\left[(2F_{gx}^2 + 2F_{gy}^2 - 1)q_z - 2F_{gz} F_{gx} q_x - 2F_{gy} F_{gz} q_y + 2(F_{gx} F_{py} - F_{gy} F_{px} - F_{gz} F_{gw})q_w\right]\mathbf e_3 \\ +\, &q_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} + 2F_{gx} F_{gy} l_{vy} + 2 F_{gz} F_{gx} l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} + 2F_{gy} F_{gz} l_{vz} + 2F_{gx} F_{gy} l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} + 2F_{gz} F_{gx} l_{vx} + 2F_{gy} F_{gz} l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(F_{gy} F_{py} + F_{gz} P_{pz})l_{vx} + 2(F_{gx} F_{py} + F_{gy} F_{px})l_{vy} + 2(F_{gx} F_{pz} + F_{gz} F_{px} + F_{gy} F_{gw})l_{vz} + (2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} - 2F_{gx} F_{gy} l_{my} - 2F_{gz} F_{gx} l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(F_{gz} F_{pz} + F_{gx} F_{px})l_{vy} + 2(F_{gy} F_{pz} + F_{gz} F_{py})l_{vz} + 2(F_{gy} F_{px} + F_{gx} F_{py} + F_{gz} F_{gw})l_{vx} + (2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} - 2F_{gy} F_{gz} l_{mz} - 2F_{gx} F_{gy} l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(F_{gx} F_{px} + F_{gy} F_{py})l_{vz} + 2(F_{gz} F_{px} + F_{gx} F_{pz})l_{vx} + 2(F_{gz} F_{py} + F_{gy} F_{pz} + F_{gx} F_{gw})l_{vy} + (2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} - 2F_{gz} F_{gx} l_{mx} - 2F_{gy} F_{gz} l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)h_x + 2F_{gx} F_{gy} h_y + 2F_{gz} F_{gx} h_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)h_y + 2F_{gy} F_{gz} h_z + 2F_{gx} F_{gy} h_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)h_z + 2F_{gz} F_{gx} h_x + 2F_{gy} F_{gz} h_y\right]\mathbf e_{412} \\ +\, &\left[2(F_{gy} F_{pz} - F_{gz} F_{py} + F_{gx} F_{gw})h_x + 2(F_{gz} F_{px} - F_{gx} F_{pz} + F_{gy} F_{gw})h_y + 2(F_{gx} F_{py} - F_{gy} F_{px} + F_{gz} F_{gw})h_z - h_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
3426de30aaa1c185719d08ee7873349b44bccf5c
Inversion
0
28
30
2023-07-15T05:55:49Z
Eric Lengyel
1
Created page with "An ''inversion'' is an improper isometry of Euclidean space. When used as an operator in the sandwich antiproduct, a [[unitized]] [[point]] $$\mathbf F = F_{px}\mathbf e_1 + F_{py}\mathbf e_2 + F_{pz}\mathbf e_3 + \mathbf e_4$$ is a specific kind of [[flector]] that performs an inversion through $$\mathbf F$$. == Calculation == The exact inversion calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Inversion |-..."
wikitext
text/x-wiki
An ''inversion'' is an improper isometry of Euclidean space.
When used as an operator in the sandwich antiproduct, a [[unitized]] [[point]] $$\mathbf F = F_{px}\mathbf e_1 + F_{py}\mathbf e_2 + F_{pz}\mathbf e_3 + \mathbf e_4$$ is a specific kind of [[flector]] that performs an inversion through $$\mathbf F$$.
== Calculation ==
The exact inversion calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Inversion
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} = (2q_w F_{px} - q_x)\mathbf e_1 + (2q_w F_{py} - q_y)\mathbf e_2 + (2q_w F_{pz} - q_z)\mathbf e_3 + q_w\mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (2F_{py} l_{vz} - 2F_{pz} l_{vy} - l_{mx})\mathbf e_{23} + (2F_{pz} l_{vx} - 2F_{px} l_{vz} - l_{my})\mathbf e_{31} + (2F_{px} l_{vy} - 2F_{py} l_{vx} - l_{mz})\mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} - (2F_{px} g_x + 2F_{py} g_y + 2F_{pz} g_z + g_w) \mathbf e_{321}$$
|}
== See Also ==
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Transflection]]
5cb188c3a01b5ee12e22608bb351bd66224c6e9a
Reflection
0
29
31
2023-07-15T05:56:20Z
Eric Lengyel
1
Created page with "A ''reflection'' is an improper isometry of Euclidean space. When used as an operator in the sandwich antiproduct, a [[unitized]] [[plane]] $$\mathbf F = F_{gx}\mathbf e_{423} + F_{gy}\mathbf e_{431} + F_{gz}\mathbf e_{412} + F_{gw}\mathbf e_{321}$$ is a specific kind of [[flector]] that performs a reflection through $$\mathbf F$$. == Calculation == The exact reflection calculations for points, lines, and planes are shown in the following table. {| class="wikitable"..."
wikitext
text/x-wiki
A ''reflection'' is an improper isometry of Euclidean space.
When used as an operator in the sandwich antiproduct, a [[unitized]] [[plane]] $$\mathbf F = F_{gx}\mathbf e_{423} + F_{gy}\mathbf e_{431} + F_{gz}\mathbf e_{412} + F_{gw}\mathbf e_{321}$$ is a specific kind of [[flector]] that performs a reflection through $$\mathbf F$$.
== Calculation ==
The exact reflection calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Reflection
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &((2F_{gy}^2 + 2F_{gz}^2 - 1)p_x \,&-\, 2F_{gx} F_{gy} p_y \,&-\, 2F_{gz} F_{gx} p_z \,&-\, 2F_{gx} F_{gw} p_w)&\mathbf e_1 \\ +\, &((2F_{gz}^2 + 2F_{gx}^2 - 1)p_y \,&-\, 2F_{gy} F_{gz} p_z \,&-\, 2F_{gx} F_{gy} p_x \,&-\, 2F_{gy} F_{gw} p_w)&\mathbf e_2 \\ +\, &((2F_{gx}^2 + 2F_{gy}^2 - 1)p_z \,&-\, 2F_{gz} F_{gx} p_x \,&-\, 2F_{gy} F_{gz} p_y \,&-\, 2F_{gz} F_{gw} p_w)&\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &((1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} \,&-\, 2F_{gx} F_{gy} l_{vy} \,&+\, 2F_{gz} F_{gx} l_{vz})&\mathbf e_{41} \\ +\, &((1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} \,&-\, 2F_{gy} F_{gz} l_{vz} \,&+\, 2F_{gx} F_{gy} l_{vx})&\mathbf e_{42} \\ +\, &((1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} \,&-\, 2F_{gz} F_{gx} l_{vx} \,&+\, 2F_{gy} F_{gz} l_{vy})&\mathbf e_{43} \\ +\, &((2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} \,&-\, 2F_{gx} F_{gy} l_{my} \,&-\, 2F_{gz} F_{gx} l_{mz} \,&+\, 2F_{gw} F_{gy} l_{vz} \,&-\, 2F_{gw} F_{gz} l_{vy})&\mathbf e_{23} \\ +\, &((2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} \,&-\, 2F_{gy} F_{gz} l_{mz} \,&-\, 2F_{gx} F_{gy} l_{mx} \,&+\, 2F_{gw} F_{gz} l_{vx} \,&-\, 2F_{gw} F_{gx} l_{vz})&\mathbf e_{31} \\ +\, &((2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} \,&-\, 2F_{gz} F_{gx} l_{mx} \,&-\, 2F_{gy} F_{gz} l_{my} \,&+\, 2F_{gw} F_{gx} l_{vy} \,&-\, 2F_{gw} F_{gy} l_{vx})&\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &((1 - 2F_{gy}^2 - 2F_{gz}^2)h_x \,&+\, 2F_{gx} F_{gy} h_y + 2F_{gz} F_{gx} h_z)&\mathbf e_{423} \\ +\, &((1 - 2F_{gz}^2 - 2F_{gx}^2)h_y \,&+\, 2F_{gy} F_{gz} h_z + 2F_{gx} F_{gy} h_x)&\mathbf e_{431} \\ +\, &((1 - 2F_{gx}^2 - 2F_{gy}^2)h_z \,&+\, 2F_{gz} F_{gx} h_x + 2F_{gy} F_{gz} h_y)&\mathbf e_{412} \\ +\, &\rlap{(2F_{gx} F_{gw} h_x + 2F_{gy} F_{gw} h_y + 2F_{gz} F_{gw} h_z - h_w)\mathbf e_{321}}\end{split}$$
|}
== See Also ==
* [[Translation]]
* [[Rotation]]
* [[Inversion]]
* [[Transflection]]
531acdcfd7c5b5491bff138e6e66fa8650ddf3f6
Rotation
0
30
32
2023-07-15T05:57:00Z
Eric Lengyel
1
Created page with "A ''rotation'' is a proper isometry of Euclidean space. For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]] :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathb..."
wikitext
text/x-wiki
A ''rotation'' is a proper isometry of Euclidean space.
For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]]
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathbf R$$ differs from a general [[motor]] only in that it is always the case that $$R_{mw} = 0$$. The line $$\boldsymbol l$$ and its weight [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}}$$ lies in the [[horizon]] in directions perpendicular to the direction of $$\boldsymbol l$$.
== Calculation ==
The exact rotation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)p_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})p_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})p_z + 2(R_{vy}R_{mz} - R_{vz}R_{my} + R_{vw}R_{mx})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)p_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})p_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})p_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} + R_{vw}R_{my})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)p_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})p_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})p_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} + R_{vw}R_{mz})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)l_{vx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{vy} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)l_{vy} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{vz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)l_{vz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{vx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(R_{vy}R_{my} + R_{vz}R_{mz})l_{vx} + 2(R_{vy}R_{mx} + R_{vx}R_{my} - R_{vw}R_{mz})l_{vy} + 2(R_{vz}R_{mx} + R_{vx}R_{mz} + R_{vw}R_{my})l_{vz} + (1 - 2R_{vy}^2 - 2R_{vz}^2)l_{mx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{my} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(R_{vz}R_{mz} + R_{vx}R_{mx})l_{vy} + 2(R_{vz}R_{my} + R_{vy}R_{mz} - R_{vw}R_{mx})l_{vz} + 2(R_{vx}R_{my} + R_{vy}R_{mx} + R_{vw}R_{mz})l_{vx} + (1 - 2R_{vz}^2 - 2R_{vx}^2)l_{my} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{mz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(R_{vx}R_{mx} + R_{vy}R_{my})l_{vz} + 2(R_{vx}R_{mz} + R_{vz}R_{mx} - R_{vw}R_{my})l_{vx} + 2(R_{vy}R_{mz} + R_{vz}R_{my} + R_{vw}R_{mx})l_{vy} + (1 - 2R_{vx}^2 - 2R_{vy}^2)l_{mz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{mx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)g_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})g_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)g_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})g_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)g_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})g_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(R_{vy}R_{mz} - R_{vz}R_{my} - R_{vw}R_{mx})g_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} - R_{vw}R_{my})g_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} - R_{vw}R_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Dual rotation]]
* [[Translation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
1aa22df4b08559b06c46bf9bd4536f2fae77d59f
Translation
0
31
33
2023-07-15T05:57:34Z
Eric Lengyel
1
Created page with "__NOTOC__ A ''translation'' is a proper isometry of Euclidean space. The specific kind of [[motor]] :$$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ performs a translation by twice the displacement vector $$\mathbf t = (t_x, t_y, t_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\mathbf t$$. === Trans..."
wikitext
text/x-wiki
__NOTOC__
A ''translation'' is a proper isometry of Euclidean space.
The specific kind of [[motor]]
:$$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$
performs a translation by twice the displacement vector $$\mathbf t = (t_x, t_y, t_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\mathbf t$$.
=== Translation to Origin ===
A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator
:$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ .
=== Exponential Form ===
A direction vector $$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ is converted to a translation operator $$\mathbf T$$ through the exponential
:$$\mathbf T = \overline{\exp_\unicode{x27D1}\left(\dfrac{1}{2}\mathbf v \wedge \mathbf e_4\right)} = \exp_\unicode{x27C7}{\left(\dfrac{1}{2}\overline{\mathbf v} \vee \mathbf e_{321}\right)}$$ .
== Calculation ==
The exact translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2t_xp_w)\mathbf e_1 + (p_y + 2t_yp_w)\mathbf e_2 + (p_z + 2t_zp_w)\mathbf e_3 + p_w\mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2t_y l_{vz} - 2t_z l_{vy})\mathbf e_{23} + (l_{my} + 2t_z l_{vx} - 2t_x l_{vz})\mathbf e_{31} + (l_{mz} + 2t_x l_{vy} - 2t_y l_{vx})\mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2t_xg_x - 2t_yg_y - 2t_zg_z) \mathbf e_{321}$$
|}
== See Also ==
* [[Dual translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
918f2166ef73b73880e35a20add767df6c548eae
File:Translation.svg
6
32
34
2023-07-15T05:58:42Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DualTranslation.svg
6
33
35
2023-07-15T05:58:52Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Complement translation
0
34
36
2023-07-15T05:59:04Z
Eric Lengyel
1
Created page with "__NOTOC__ A ''dual translation'' is a proper isometry of dual Euclidean space. The specific kind of [[dual motor]] :$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$ performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by :$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ . == Example == The left image below shows the flow field in the ''x''-''z'' plane for the translation $..."
wikitext
text/x-wiki
__NOTOC__
A ''dual translation'' is a proper isometry of dual Euclidean space.
The specific kind of [[dual motor]]
:$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$
performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by
:$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ .
== Example ==
The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the dual translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative.
[[Image:Translation.svg|480px]]
[[Image:DualTranslation.svg|480px]]
== Calculation ==
The exact dual translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Dual Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$
|}
== Dual Translation to Horizon ==
A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is dual translated to the horizon by the operator
:$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{32} + \mathbf 1$$ .
== See Also ==
* [[Translation]]
* [[Dual rotation]]
* [[Dual reflection]]
f5dbfdf842b1ba98ed2fbe6ab60ccecb2f63c7be
File:Rotation.svg
6
35
37
2023-07-15T05:59:38Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DualRotation.svg
6
36
38
2023-07-15T05:59:48Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Complement rotation
0
37
39
2023-07-15T05:59:53Z
Eric Lengyel
1
Created page with "A ''dual rotation'' is a proper isometry of dual Euclidean space. For a [[bulk normalized]] [[line]] $$\boldsymbol l$$, the specific kind of [[dual motor]] :$$\mathbf R = \boldsymbol l\sin\phi + \mathbf 1\cos\phi$$ , performs a dual rotation of an object $$\mathbf x$$ by twice the angle $$\phi$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde R}$$. The line $$\boldsymbol l$$ and its bulk [[complement]]..."
wikitext
text/x-wiki
A ''dual rotation'' is a proper isometry of dual Euclidean space.
For a [[bulk normalized]] [[line]] $$\boldsymbol l$$, the specific kind of [[dual motor]]
:$$\mathbf R = \boldsymbol l\sin\phi + \mathbf 1\cos\phi$$ ,
performs a dual rotation of an object $$\mathbf x$$ by twice the angle $$\phi$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde R}$$. The line $$\boldsymbol l$$ and its bulk [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ passes through the origin and runs perpendicular to the line's moment bivector.
Under a dual rotation, a point $$\mathbf p$$ follows an orbit of constant eccentricity as the angle $$\phi$$ ranges from 0 to $$\pi$$. The line $$\boldsymbol l$$ is the directrix for the orbit, and the intersection of $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ with the plane $$\boldsymbol l \wedge \mathbf p$$ is the focus. The eccentricity is given by the distance from $$\mathbf p$$ to the focus divided by the distance from $$\mathbf p$$ to the directrix.
== Example ==
The left image below shows the flow field in the ''x''-''y'' plane for the rotation $$\mathbf R = (\mathbf e_{43} - \frac{1}{2} \mathbf e_{31})\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$. The axis of rotation runs along the ''z'' direction through the yellow point. The right image shows the flow field in the ''x''-''y'' plane for the dual rotation $$\mathbf R = (\frac{1}{2} \mathbf e_{42} - \mathbf e_{12})\sin\phi + \mathbf 1\cos\phi$$. Points follow orbits of constant eccentricity with respect to a focus at the origin and a directrix given by the yellow line.
[[Image:Rotation.svg|480px]]
[[Image:DualRotation.svg|480px]]
== Calculation ==
The exact dual rotation calculations for points, lines, and planes transformed by the operator $$\mathbf R = R_{vx}\mathbf e_{41} + R_{vy}\mathbf e_{42} + R_{vz}\mathbf e_{43} + R_{mx}\mathbf e_{23} + R_{my}\mathbf e_{31} + R_{mz}\mathbf e_{12} + R_{mw}\mathbf 1$$ are shown in the following table. Here, it is assumed that $$\mathbf R$$ is [[bulk normalized]] so that $$R_{mx}^2 + R_{my}^2 + R_{mz}^2 + R_{mw}^2 = 1$$ and that $$\mathbf R$$ properly satisfies the [[geometric property]] so that $$R_{vx}R_{mx} + R_{vy}R_{my} + R_{vz}R_{mz} = 0$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)p_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})p_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})p_z\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)p_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})p_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})p_x\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)p_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})p_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})p_y\right]\mathbf e_3 \\ +\, &\left[2(R_{my}R_{vz} - R_{mz}R_{vy} + R_{mw}R_{vx})p_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} + R_{mw}R_{vy})p_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} + R_{mw}R_{vz})p_z + p_w\right]\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[-4(R_{my}R_{vy} + R_{mz}R_{vz})l_{mx} + 2(R_{my}R_{vx} + R_{mx}R_{vy} + R_{mw}R_{vz})l_{my} + 2(R_{mz}R_{vx} + R_{mx}R_{vz} - R_{mw}R_{vy})l_{mz} + (1 - 2R_{my}^2 - 2R_{mz}^2)l_{vx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{vy} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[-4(R_{mz}R_{vz} + R_{mx}R_{vx})l_{my} + 2(R_{mz}R_{vy} + R_{my}R_{vz} + R_{mw}R_{vx})l_{mz} + 2(R_{mx}R_{vy} + R_{my}R_{vx} - R_{mw}R_{vz})l_{mx} + (1 - 2R_{mz}^2 - 2R_{mx}^2)l_{vy} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{vz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[-4(R_{mx}R_{vx} + R_{my}R_{vy})l_{mz} + 2(R_{mx}R_{vz} + R_{mz}R_{vx} + R_{mw}R_{vy})l_{mx} + 2(R_{my}R_{vz} + R_{mz}R_{vy} - R_{mw}R_{vx})l_{my} + (1 - 2R_{mx}^2 - 2R_{my}^2)l_{vz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{vx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)l_{mx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{my} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)l_{my} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{mz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)l_{mz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{mx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf g \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)g_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})g_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})g_z + 2(R_{my}R_{vz} - R_{mz}R_{vy} - R_{mw}R_{vx})g_w\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)g_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})g_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})g_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} - R_{mw}R_{vy})g_w\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)g_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})g_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})g_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} - R_{mw}R_{vz})g_w\right]\mathbf e_{412} \\ +\, &g_w\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Rotation]]
* [[Dual translation]]
* [[Dual reflection]]
694f05e6b5d39b3a68fe24a9ba47ed50b9cc15b3
Geometric norm
0
38
40
2023-07-15T06:02:43Z
Eric Lengyel
1
Created page with "The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm. For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator. == Bulk Norm == The ''bulk norm'' of an element $$\mathbf x$$, d..."
wikitext
text/x-wiki
The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm.
For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator.
== Bulk Norm ==
The ''bulk norm'' of an element $$\mathbf x$$, denoted $$\left\Vert\mathbf x\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf x$$ with its own [[reverse]]:
:$$\left\Vert\mathbf x\right\Vert_\unicode{x25CF} = \sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf{\tilde x}}$$ .
An element that has a bulk norm of '''1''' is said to be ''bulk normalized''.
The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$
|}
== Weight Norm ==
The ''weight norm'' of an element $$\mathbf x$$, denoted $$\left\Vert\mathbf x\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf x$$ with its own [[antireverse]]:
:$$\left\Vert\mathbf x\right\Vert_\unicode{x25CB} = \sqrt{\mathbf x \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}\vphantom{\mathbf{\tilde x}}}$$ .
(Note that the square root in this case is taken with respect to the geometric antiproduct.)
An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''.
The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$
|}
== Geometric Norm ==
The bulk norm and weight norm are summed to construct a ''geometric norm'' given by
:$$\left\Vert\mathbf x\right\Vert = \left\Vert\mathbf x\right\Vert_\unicode{x25CF} + \left\Vert\mathbf x\right\Vert_\unicode{x25CB} = \sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf{\tilde x}} + \sqrt{\mathbf x \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}\vphantom{\mathbf{\tilde x}}}$$ .
This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because
:$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ .
Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf x$$ is given by
:$$\widehat{\left\Vert\mathbf x\right\Vert} = \dfrac{\left\Vert\mathbf x\right\Vert}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf x\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf{\tilde x}}}{\sqrt{\mathbf x \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}\vphantom{\mathbf{\tilde x}}}} + {\large\unicode{x1D7D9}}$$ .
The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$.
Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== See Also ==
* [[Geometric property]]
3b1fb145f24798fb94367a72caec426d3587c092
Unitization
0
39
41
2023-07-15T06:03:19Z
Eric Lengyel
1
Created page with "''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''. An element $$\mathbf x$$ is unitized by calculating :$$\mathbf{\hat x} = \dfrac{\mathbf x}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf x}{\sqrt{\mathbf x \mathbin{\unicode{x25CB}} \smash{\ma..."
wikitext
text/x-wiki
''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''.
An element $$\mathbf x$$ is unitized by calculating
:$$\mathbf{\hat x} = \dfrac{\mathbf x}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf x}{\sqrt{\mathbf x \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}}}$$ .
In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one.
The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$p_w^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$
|}
== See Also ==
* [[Geometric norm]]
a0d9d2d7e1abaaf78f7eaeb7dd6babfbf61e897c
Geometric constraint
0
40
42
2023-07-15T06:03:55Z
Eric Lengyel
1
Created page with "An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric property'' if and only if the [[geometric product]] between $$\mathbf x$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf x$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is, :$$\mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde x} = \mathbf x \mathbin{\unicode{x25CF}} \mathbf{\..."
wikitext
text/x-wiki
An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric property'' if and only if the [[geometric product]] between $$\mathbf x$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf x$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is,
:$$\mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde x} = \mathbf x \mathbin{\unicode{x25CF}} \mathbf{\tilde x}$$
and
:$$\mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = \mathbf x \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$ .
The set of all elements possessing the geometric property is closed under both the [[geometric product]] and [[geometric antiproduct]].
The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ to possess the geometric property. Points and planes do not have any requirements—they all possess the geometric property.
{| class="wikitable"
! Type !! Definition !! Requirement
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$xy = 0$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$
|}
== See Also ==
* [[Geometric norm]]
d8c2cafb828a6a9f9c4eaa27e91791b3b3054950
Complements
0
41
43
2023-07-15T06:04:43Z
Eric Lengyel
1
Created page with "''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf x$$ has a ''right complement'', which we denote by $$\overline{\mathbf x}$$, that satisfies the equation :$$\mathbf x \wedge \overline{\mathbf x} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf x}$$, that satisfies the equation :$$\underline{\mathbf x} \wedge \mathbf x = {\larg..."
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf x$$ has a ''right complement'', which we denote by $$\overline{\mathbf x}$$, that satisfies the equation
:$$\mathbf x \wedge \overline{\mathbf x} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf x}$$, that satisfies the equation
:$$\underline{\mathbf x} \wedge \mathbf x = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf x} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}\,\overline{\mathbf x}$$ .
This shows that the left and right complements of an element $$\mathbf x$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf x)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf x)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf x}} = \mathbf x$$.
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf x \vee \overline{\mathbf x} = \mathbf 1$$
:$$\underline{\mathbf x} \vee\mathbf x = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|900px]]
== Explicit Calculation ==
Left and right complements of the [[bulk and weight]] of an element $$\mathbf x$$ can be calculated by taking the geometric product and antiproduct with the antiscalar $$\large\unicode{x1D7D9}$$ and the scalar $$\mathbf 1$$, respectively, as follows.
:$$\overline{\mathbf x_\smash{\unicode{x25CF}}} = \mathbf{\tilde x} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$
:$$\underline{\mathbf x_\smash{\unicode{x25CF}}} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf x_\smash{\unicode{x25CB}}} = \mathbf 1 \mathbin{\unicode{x27C7}} \mathbf{\tilde x}$$
:$$\underline{\mathbf x_\smash{\unicode{x25CB}}} = \mathbf 1 \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$
The full complement of $$\mathbf x$$ is the sum of the complements of its bulk and weight, so we can write
:$$\overline{\mathbf x} = \mathbf{\tilde x} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}} + \mathbf 1 \mathbin{\unicode{x27C7}} \mathbf{\tilde x}$$
:$$\underline{\mathbf x} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}} + \mathbf 1 \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$ .
== Weight Complements ==
The complement of an element's weight is particularly useful because it extracts the attitude of a geometric object as an element expressed on an orthogonal basis. These arise naturally in [[projections]], which make use of the [[interior product]].
The following table lists the weight left complement for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Left Complement !! Description
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\underline{\mathbf p_\smash{\unicode{x25CB}}} = -p_w \mathbf e_{321}$$
| style="padding: 12px;" | Plane at infinity.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$
| style="padding: 12px;" | Line at infinity perpendicular to line $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\underline{\mathbf g_\smash{\unicode{x25CB}}} = g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3$$
| style="padding: 12px;" | Normal vector, or point at infinity in direction perpendicular to plane $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw}$$
| style="padding: 12px;" | $$\underline{\mathbf Q_\smash{\unicode{x25CB}}} = -Q_{vx} \mathbf e_{23} - Q_{vy} \mathbf e_{31} - Q_{vz} \mathbf e_{12} + Q_{vw}$$
| style="padding: 12px;" | Conventional [[quaternion]] $$\mathbf q = Q_{vx} \mathbf i + Q_{vy} \mathbf j + Q_{vz} \mathbf k + Q_{vw} = (a_x \mathbf i + a_y \mathbf j + a_z \mathbf k)\sin\phi + \cos\phi$$, which is the 3D position-free counterpart of a [[motor]].
The sandwich product $$\mathbf q \mathbin{\unicode{x27D1}} \mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ rotates the vector $$\mathbf u$$ through the angle $$2\phi$$ about the axis $$\mathbf a$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\underline{\mathbf F_\smash{\unicode{x25CB}}} = F_{gx} \mathbf e_1 + F_{gy} \mathbf e_2 + F_{gz} \mathbf e_3 - F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | 3D position-free counterpart of a [[flector]] having the form $$\mathbf f = (a_x \mathbf e_1 + a_y \mathbf e_2 + a_z \mathbf e_3)\cos\phi + \mathbf e_{123}\sin\phi$$.
The sandwich product $$-\mathbf f \mathbin{\unicode{x27D1}} \mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde f}$$ rotates the vector $$\mathbf u$$ through the angle $$2\phi$$ about the axis $$\mathbf a$$ and reflects it along the direction of $$\mathbf a$$.
|}
== See Also ==
* [[Duality]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
53709191bcbe9ae475f55cbd1e50f57b25a202ba
File:Complements.svg
6
42
44
2023-07-15T06:04:54Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Improper isom.svg
6
43
45
2023-07-15T06:06:01Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Flector
0
44
46
2023-07-15T06:06:10Z
Eric Lengyel
1
Created page with "[[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]] A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotorefle..."
wikitext
text/x-wiki
[[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]]
A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotoreflections. The name flector is a portmanteau of ''reflection operator''. Flectors cannot perform proper isometries that do not include [[reflections]]; those are instead performed by operators called [[motors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form
:$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ ,
which is the sum of a [[point]] $$\mathbf p$$ and a [[plane]] $$\mathbf g$$. To possess the [[geometric property]], the components of $$\mathbf F$$ must satisfy the equation
:$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ ,
and this means that the [[point]] $$\mathbf p$$ must lie in the [[plane]] $$\mathbf g$$.
An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all [[motors]] in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing [[inversion]] through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$.
== Norm ==
The [[bulk norm]] of a flector $$\mathbf F$$ is given by
:$$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{\mathbf F \mathbin{\unicode{x25CF}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = \sqrt{\mathbf F \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ .
The [[geometric norm]] of a flector $$\mathbf F$$ is thus
:$$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A flector is [[unitized]] when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$.
== Trigonometric Form ==
A general flector $$\mathbf F$$ can be expressed in terms of a [[unitized]] [[point]] $$\mathbf p$$ and a [[unitized]] [[plane]] $$\mathbf g$$ as
:$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ .
This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane.
== Factorization ==
Any [[unitized]] flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple [[motor]] $$\mathbf Q$$ and a [[plane]] by calculating
:$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ ,
where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by
:$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ ,
which is always unitized. The original flector $$\mathbf F$$ can now be expressed as
:$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ .
== Conversion from Flector to Matrix ==
Given a specific [[Unitization | unitized]] flector $$\mathbf G$$, define the matrices
:$$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Flector ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant −1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$
:$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$
:$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$
:$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$
:$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$
:$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$
:$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$
:$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$
:$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$
If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate
:$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ ,
where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by
$$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$
$$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$
$$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$
$$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ .
== Flector Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] flector $$\mathbf F$$ as shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(2F_{gy}^2 + 2F_{gz}^2 - 1)q_x + 2(F_{gz}F_{pw} - F_{gx}F_{gy})q_y - 2(F_{gy}F_{pw} + F_{gz}F_{gx})q_z + 2(F_{gy}F_{pz} - F_{gz}F_{py} + F_{px}F_{pw} - F_{gx}F_{gw})q_w\right]\mathbf e_1 \\ +\, &\left[(2F_{gz}^2 + 2F_{gx}^2 - 1)q_y + 2(F_{gx}F_{pw} - F_{gy}F_{gz})q_z - 2(F_{gz}F_{pw} + F_{gx}F_{gy})q_x + 2(F_{gz}F_{px} - F_{gx}F_{pz} + F_{py}F_{pw} - F_{gy}F_{gw})q_w\right]\mathbf e_2 \\ +\, &\left[(2F_{gx}^2 + 2F_{gy}^2 - 1)q_z + 2(F_{gy}F_{pw} - F_{gz}F_{gx})q_x - 2(F_{gx}F_{pw} + F_{gy}F_{gz})q_y + 2(F_{gx}F_{py} - F_{gy}F_{px} + F_{pz}F_{pw} - F_{gz}F_{gw})q_w\right]\mathbf e_3 \\ +\, &q_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} + 2(F_{gx}F_{gy} - F_{gz}F_{pw})l_{vy} + 2(F_{gz}F_{gx} + F_{gy}F_{pw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} + 2(F_{gy}F_{gz} - F_{gx}F_{pw})l_{vz} + 2(F_{gx}F_{gy} + F_{gz}F_{pw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} + 2(F_{gz}F_{gx} - F_{gy}F_{pw})l_{vx} + 2(F_{gy}F_{gz} + F_{gx}F_{pw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(F_{gy}F_{py} + F_{gz}F_{pz})l_{vx} + 2(F_{gx}F_{py} + F_{gy}F_{px})l_{vy} + 2(F_{gx}F_{pz} + F_{gz}F_{px} + F_{gy}F_{gw} + F_{py}F_{pw})l_{vz} + (2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} + 2(F_{gz}F_{pw} - F_{gx}F_{gy})l_{my} - 2(F_{gy}F_{pw} + F_{gz}F_{gx})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(F_{gz}F_{pz} + F_{gx}F_{px})l_{vy} + 2(F_{gy}F_{pz} + F_{gz}F_{py})l_{vz} + 2(F_{gy}F_{px} + F_{gx}F_{py} + F_{gz}F_{gw} + F_{pz}F_{pw})l_{vx} + (2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} + 2(F_{gx}F_{pw} - F_{gy}F_{gz})l_{mz} - 2(F_{gz}F_{pw} + F_{gx}F_{gy})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(F_{gx}F_{px} + F_{gy}F_{py})l_{vz} + 2(F_{gz}F_{px} + F_{gx}F_{pz})l_{vx} + 2(F_{gz}F_{py} + F_{gy}F_{pz} + F_{gx}F_{gw} + F_{px}F_{pw})l_{vy} + (2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} + 2(F_{gy}F_{pw} - F_{gz}F_{gx})l_{mx} - 2(F_{gx}F_{pw} + F_{gy}F_{gz})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)h_x + 2(F_{gx}F_{gy} - F_{gz}F_{pw})h_y + 2(F_{gz}F_{gx} + F_{gy}F_{pw})h_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)h_y + 2(F_{gy}F_{gz} - F_{gx}F_{pw})h_z + 2(F_{gx}F_{gy} + F_{gz}F_{pw})h_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)h_z + 2(F_{gz}F_{gx} - F_{gy}F_{pw})h_x + 2(F_{gy}F_{gz} + F_{gx}F_{pw})h_y\right]\mathbf e_{412} \\ +\, &\left[2(F_{gy}F_{pz} - F_{gz}F_{py} + F_{gx}F_{gw} - F_{px}F_{pw})h_x + 2(F_{gz}F_{px} - F_{gx}F_{pz} + F_{gy}F_{gw} - F_{py}F_{pw})h_y + 2(F_{gx}F_{py} - F_{gy}F_{px} + F_{gz}F_{gw} - F_{pz}F_{pw})h_z - h_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Motor]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
349eeda1b7c9adcf6947aed87c2388ff0802481e
File:Distance point point.svg
6
45
47
2023-07-15T06:09:43Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Distance point line.svg
6
46
48
2023-07-15T06:09:53Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Distance point plane.svg
6
47
49
2023-07-15T06:10:03Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Distance line line.svg
6
48
50
2023-07-15T06:10:13Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Euclidean distance
0
49
51
2023-07-15T06:10:16Z
Eric Lengyel
1
Created page with "The Euclidean distance between geometric objects can be measured by using [[commutators]] to calculate homogeneous [[magnitudes]]. The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and p..."
wikitext
text/x-wiki
The Euclidean distance between geometric objects can be measured by using [[commutators]] to calculate homogeneous [[magnitudes]].
The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
{| class="wikitable"
! Formula !! Interpretation !! Illustration
|-
| style="padding: 12px;" | $$\left\Vert[\mathbf p, \mathbf q]^{\Large\unicode{x27C7}}_-\right\Vert_\unicode{x25CF} + \left\Vert[\mathbf p, \mathbf q]^{\Large\unicode{x27C7}}_+\right\Vert_\unicode{x25CB} = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$
| style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]]
|-
| style="padding: 12px;" | $$\left\Vert[\mathbf p, \boldsymbol l]^{\Large\unicode{x27C7}}_-\right\Vert_\unicode{x25CF} + \left\Vert[\mathbf p, \boldsymbol l]^{\Large\unicode{x27C7}}_+\right\Vert_\unicode{x25CB} = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]]
|-
| style="padding: 12px;" | $$\left\Vert[\mathbf p, \mathbf g]^{\Large\unicode{x27C7}}_-\right\Vert_\unicode{x25CF} + \left\Vert[\mathbf p, \mathbf g]^{\Large\unicode{x27C7}}_+\right\Vert_\unicode{x25CB} = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\left\Vert[\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_+\right\Vert_\unicode{x25CF} + \left\Vert[\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_-\right\Vert_\unicode{x25CB} = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]]
|}
== See Also ==
* [[Geometric norm]]
* [[Commutators]]
038dfe603e429890de2f95e719d1e103d149b992
Projections
0
50
52
2023-07-15T06:11:05Z
Eric Lengyel
1
Created page with "Projections and antiprojections of one geometric object onto another can be accomplished using [[interior products]] as described below. The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. == Projection == The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula $$(\mathbf y_\unicode{x25CB} \mathbin{\unicode{..."
wikitext
text/x-wiki
Projections and antiprojections of one geometric object onto another can be accomplished using [[interior products]] as described below.
The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
== Projection ==
The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula $$(\mathbf y_\unicode{x25CB} \mathbin{\unicode{x22A2}} \mathbf x) \mathbin{\unicode{x22A3}} \mathbf y$$. Applying the definitions of the left and right [[interior products]], this becomes
:$$(\mathbf y_\unicode{x25CB} \mathbin{\unicode{x22A2}} \mathbf x) \mathbin{\unicode{x22A3}} \mathbf y = \left(\underline{\mathbf y_\smash{\unicode{x25CB}}} \wedge \mathbf x\right) \vee \mathbf y$$ .
Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Projection Formula !! Illustration
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$.
$$\left(\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$
| style="padding: 12px;" | [[Image:point_plane.svg|300px]]
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.
$$\begin{split}\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p\right) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$
| style="padding: 12px;" | [[Image:point_line.svg|300px]]
|-
| style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$.
$$\begin{split}\left(\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \boldsymbol l\right) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | [[Image:line_plane.svg|300px]]
|}
== Antiprojection ==
The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula $$(\mathbf y_\unicode{x25CB} \mathbin{\unicode{x22A8}} \mathbf x) \mathbin{\unicode{x2AE4}} \mathbf y$$. Applying the definitions of the left and right [[interior antiproducts]], this becomes
:$$(\mathbf y_\unicode{x25CB} \mathbin{\unicode{x22A8}} \mathbf x) \mathbin{\unicode{x2AE4}} \mathbf y = \left(\underline{\mathbf y_\smash{\unicode{x25CB}}} \vee \mathbf x\right) \wedge \mathbf y$$ .
Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Antiprojection Formula !! Illustration
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$.
$$\left(\underline{\mathbf p_\smash{\unicode{x25CB}}} \vee \mathbf g\right) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$
| style="padding: 12px;" | [[Image:plane_point.svg|300px]]
|-
| style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.
$$\begin{split}\left(\underline{\mathbf p_\smash{\unicode{x25CB}}} \vee \boldsymbol l\right) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | [[Image:line_point.svg|300px]]
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$.
$$\begin{split}\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \vee \mathbf g\right) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$
| style="padding: 12px;" | [[Image:plane_line.svg|300px]]
|}
== Projection of Origin ==
When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Projection Formula !! Description
|-
| style="padding: 12px;" | $$\left(\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \mathbf e_4\right) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$.
|-
| style="padding: 12px;" | $$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf e_4\right) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$.
|}
== Antiprojection of Horizon ==
Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using [[interior antiproducts]] with the [[bulk]] of the point or line instead of the [[weight]]. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Antiprojection Formula !! Description
|-
| style="padding: 12px;" | $$\left(\underline{\mathbf p_\smash{\unicode{x25CF}}} \vee \mathbf e_{321}\right) \wedge \mathbf p = -p_xp_w \mathbf e_{423} - p_yp_w \mathbf e_{431} - p_zp_w \mathbf e_{412} + (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$.
|-
| style="padding: 12px;" | $$\left(\underline{\boldsymbol l_\smash{\unicode{x25CF}}} \vee \mathbf e_{321}\right) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$.
|}
== See Also ==
* [[Interior product]]
* [[Join and meet]]
41f73c9916b78ba037f0cc1255b45c44759bca28
File:Reverses.svg
6
57
59
2023-07-15T06:14:17Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Reverses
0
58
60
2023-07-15T06:14:21Z
Eric Lengyel
1
Created page with "''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations. For any element $$\mathbf x$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf x$$, which we denote by $$\mathbf{\tilde x}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{234}$$ is $$\mathbf e_4 \wedge \mathbf e_3 \wedge \mathbf e_2$$, which we would write as $$-\math..."
wikitext
text/x-wiki
''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations.
For any element $$\mathbf x$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf x$$, which we denote by $$\mathbf{\tilde x}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{234}$$ is $$\mathbf e_4 \wedge \mathbf e_3 \wedge \mathbf e_2$$, which we would write as $$-\mathbf e_{234}$$since 432 is an odd permutation of 234. In general, the reverse of an element $$\mathbf x$$ is given by
:$$\mathbf{\tilde x} = (-1)^{\operatorname{gr}(\mathbf x)(\operatorname{gr}(\mathbf x) - 1)/2}\,\mathbf x$$ .
Symmetrically, for any element $$\mathbf x$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf x$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf x$$ is given by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{ag}(\mathbf x)(\operatorname{ag}(\mathbf x) - 1)/2}\,\mathbf x$$ .
The reverse and antireverse of any element $$\mathbf x$$ are related by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}\,\mathbf{\tilde x}$$ .
To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse
:$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ ,
and similarly for the antireverse.
The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Reverses.svg|820px]]
== See Also ==
* [[Complements]]
836bf74e7b158f9cedf1a9eb94e38823630648df
Grade and antigrade
0
59
61
2023-07-15T06:15:19Z
Eric Lengyel
1
Created page with "The ''grade'' of a basis element in a geometric algebra is equal to the number of basis vectors present in its factorization. An arbitrary element whose components all have the same grade is also said to have that grade. The ''antigrade'' of a basis element is equal to the number of basis vectors absent from its factorization. The grade of an element $$\mathbf x$$ is denoted by $$\operatorname{gr}(\mathbf x)$$, and the antigrade is denoted by $$\operatorname{ag}(\mathb..."
wikitext
text/x-wiki
The ''grade'' of a basis element in a geometric algebra is equal to the number of basis vectors present in its factorization. An arbitrary element whose components all have the same grade is also said to have that grade.
The ''antigrade'' of a basis element is equal to the number of basis vectors absent from its factorization.
The grade of an element $$\mathbf x$$ is denoted by $$\operatorname{gr}(\mathbf x)$$, and the antigrade is denoted by $$\operatorname{ag}(\mathbf x)$$. In an ''n''-dimensional geometric algebra, it is always the case that
:$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ .
[[Scalars]] have grade 0, and [[antiscalars]] have grade ''n''. [[Vectors]] have grade 1, and [[antivectors]] have antigrade 1. [[Bivectors]] have grade 2, and [[trivectors]] have grade 3.
== See Also ==
* [[Duality]]
* [[Complements]]
dd1095ec5f4dda0e778a18984a46f62c74c4976d
File:Plane.svg
6
60
62
2023-07-15T06:16:53Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Plane
0
61
63
2023-07-15T06:16:58Z
Eric Lengyel
1
Created page with "[[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ . All planes possess the [[geometric property]]. The [[bulk]] of a plane is given by its $$w$$ coordinate, a..."
wikitext
text/x-wiki
[[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ .
All planes possess the [[geometric property]].
The [[bulk]] of a plane is given by its $$w$$ coordinate, and the [[weight]] of a plane is given by its $$x$$, $$y$$, and $$z$$ coordinates. A plane is [[unitized]] when $$g_x^2 + g_y^2 + g_z^2 = 1$$. The [[attitude]] of a plane is the bivector $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ corresponding to its normal.
When used as an operator in the sandwich with the [[geometric antiproduct]], a plane is a specific kind of [[flector]] that performs a [[reflection]] through itself.
A [[dual translation]] operator $$\mathbf T$$ that moves a plane $$\mathbf g$$ to the horizon is given by
:$$\mathbf T = \underline{\mathbf g} \wedge \mathbf e_{4} + 2\mathbf g \vee \mathbf e_4 = g_{x\vphantom{y}} \mathbf e_{41} + g_y \mathbf e_{42} + g_{z\vphantom{y}} \mathbf e_{43} + 2g_w$$ .
== Plane at Infinity ==
If the weight of a plane is zero (i.e., its $$x$$, $$y$$, and $$z$$ coordinates are all zero), then the plane lies at infinity in all directions. Such a plane is normalized when $$g_w = \pm 1$$. This is the ''horizon'' of three-dimensional space.
<br clear="right" />
== See Also ==
* [[Point]]
* [[Line]]
a5620d676462659d8388d4c1688b33087becba63
Scalars and antiscalars
0
62
64
2023-07-15T06:20:18Z
Eric Lengyel
1
Created page with "A ''scalar'' in a geometric algebra is an element having [[grade]] 0. Scalars are just ordinary real numbers, and they do not involve any basis vectors. The basis element representing the unit scalar is denoted by $$\mathbf 1$$, a boldface number one. The unit scalar $$\mathbf 1$$ is the multiplicative identity of the [[geometric product]]. For a general element $$\mathbf a$$, the notation $$a_{\mathbf 1}$$ means the scalar component of $$\mathbf a$$. An ''antiscalar'..."
wikitext
text/x-wiki
A ''scalar'' in a geometric algebra is an element having [[grade]] 0. Scalars are just ordinary real numbers, and they do not involve any basis vectors.
The basis element representing the unit scalar is denoted by $$\mathbf 1$$, a boldface number one. The unit scalar $$\mathbf 1$$ is the multiplicative identity of the [[geometric product]].
For a general element $$\mathbf a$$, the notation $$a_{\mathbf 1}$$ means the scalar component of $$\mathbf a$$.
An ''antiscalar'' in a geometric algebra is an element having [[antigrade]] 0. Antiscalars are multiples of the volume element given by the [[wedge product]] of all basis vectors.
The basis element representing the unit antiscalar is denoted by $$\large\unicode{x1D7D9}$$, a double-struck number one. The unit antiscalar $$\large\unicode{x1D7D9}$$ is the multiplicative identity of the [[geometric antiproduct]].
For a general element $$\mathbf a$$, the notation $$a_{\large\unicode{x1D7D9}}$$ means the antiscalar component of $$\mathbf a$$.
== See Also ==
* [[Duality]]
b34a5bb06552f8b281ed47de6784f79b4434bca0
Quaternion
0
63
65
2023-07-15T06:23:47Z
Eric Lengyel
1
Created page with "__NOTOC__ A ''quaternion'' is an operator that performs a rotation about the origin in 3D space. Conventionally, a quaternion $$\mathbf q$$ is written as :$$\mathbf q = q_w + q_x \mathbf i + q_y \mathbf j + q_z \mathbf k$$ , where the "imaginary" units $$\mathbf i$$, $$\mathbf j$$, and $$\mathbf k$$ all square to $$-1$$ and multiply according to the rules :$$\mathbf{ij} = -\mathbf{ji} = \mathbf k$$ :$$\mathbf{jk} = -\mathbf{kj} = \mathbf i$$ :$$\mathbf{ki} = -\mathbf{..."
wikitext
text/x-wiki
__NOTOC__
A ''quaternion'' is an operator that performs a rotation about the origin in 3D space. Conventionally, a quaternion $$\mathbf q$$ is written as
:$$\mathbf q = q_w + q_x \mathbf i + q_y \mathbf j + q_z \mathbf k$$ ,
where the "imaginary" units $$\mathbf i$$, $$\mathbf j$$, and $$\mathbf k$$ all square to $$-1$$ and multiply according to the rules
:$$\mathbf{ij} = -\mathbf{ji} = \mathbf k$$
:$$\mathbf{jk} = -\mathbf{kj} = \mathbf i$$
:$$\mathbf{ki} = -\mathbf{ik} = \mathbf j$$ .
A ''unit quaternion'' is one for which $$q_w^2 + q_x^2 + q_y^2 + q_z^2 = 1$$.
== Quaternions in 4D Rigid Geometric Algebra ==
Because quaternions keep the origin fixed, they are part of the group SO(3) where the special Euclidean group SE(3) and reciprocal special Euclidean group RSE(3) intersect. Consequently, the quaternions have two different representations in the four-dimensional rigid geometric algebra $$\mathcal G_{3,0,1}$$.
=== Quaternions as Motors ===
First, the quaternions are exactly the subset of [[motors]] that perform pure rotations about the origin without any translation. In this case, the units $$\mathbf i$$, $$\mathbf j$$, and $$\mathbf k$$ are identified as
:$$\mathbf i = \mathbf e_{41}$$
:$$\mathbf j = \mathbf e_{42}$$
:$$\mathbf k = \mathbf e_{43}$$ .
A quaternion can then be written as
:$$\mathbf q = q_x \mathbf e_{41} + q_y \mathbf e_{42} + q_z \mathbf e_{43} + q_w {\large\unicode{x1D7D9}}$$ ,
and any object $$\mathbf x$$ (such as a [[point]], [[line]], or [[plane]]) is rotated about the origin through the sandwich product
:$$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{q}}$$ ,
using the [[geometric antiproduct]].
A unit quaternion can also be written as
:$$\mathbf q = \mathbf a \sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ ,
where $$\mathbf a = a_x \mathbf e_{41} + a_y \mathbf e_{42} + a_z \mathbf e_{43}$$ is a unit bivector representing the axis of rotation, and $$\phi$$ is half the angle of rotation.
=== Quaternions as Dual Motors ===
Second, the quaternions are exactly the subset of [[dual motors]] for which the directrix lies in the horizon. In this case, the units $$\mathbf i$$, $$\mathbf j$$, and $$\mathbf k$$ are identified as
:$$\mathbf i = -\mathbf e_{23}$$
:$$\mathbf j = -\mathbf e_{31}$$
:$$\mathbf k = -\mathbf e_{12}$$ .
A quaternion can then be written as
:$$\mathbf q = -q_x \mathbf e_{23} - q_y \mathbf e_{31} - q_z \mathbf e_{12} + q_w \mathbf 1$$ ,
and any object $$\mathbf x$$ (such as a [[point]], [[line]], or [[plane]]) is rotated about the origin through the sandwich product
:$$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ ,
using the [[geometric product]].
A unit quaternion can also be written as
:$$\mathbf q = -\mathbf a \sin\phi + \mathbf 1\cos\phi$$ ,
where $$\mathbf a = a_x \mathbf e_{23} + a_y \mathbf e_{31} + a_z \mathbf e_{12}$$ is a unit bivector representing the axis of rotation, and $$\phi$$ is half the angle of rotation.
== See Also ==
* [[Motor]]
* [[Flector]]
ae9be99aa20980a5225c736d36cc0ed3dd40d31d
Quaternions
0
64
66
2023-07-15T06:24:11Z
Eric Lengyel
1
Redirected page to [[Quaternion]]
wikitext
text/x-wiki
#REDIRECT [[Quaternion]]
f24d39cb5535181a47c41073640857e68733c353
Dot products
0
67
69
2023-07-15T06:26:19Z
Eric Lengyel
1
Created page with "The ''dot product'' is the inner product in geometric algebra, and it makes up the scalar part of the [[geometric product]]. There are two products with symmetric properties called the dot product and antidot product. The dot product and antidot product are important for the calculation of [[Geometric norm | norms]]. == Dot Product == The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and r..."
wikitext
text/x-wiki
The ''dot product'' is the inner product in geometric algebra, and it makes up the scalar part of the [[geometric product]]. There are two products with symmetric properties called the dot product and antidot product.
The dot product and antidot product are important for the calculation of [[Geometric norm | norms]].
== Dot Product ==
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$".
The dot product includes the metric properties of the [[geometric product]], which means we have the following rules for the basis vectors.
:$$\mathbf e_1 \mathbin{\unicode{x25CF}} \mathbf e_1 = 1$$
:$$\mathbf e_2 \mathbin{\unicode{x25CF}} \mathbf e_2 = 1$$
:$$\mathbf e_3 \mathbin{\unicode{x25CF}} \mathbf e_3 = 1$$
:$$\mathbf e_4 \mathbin{\unicode{x25CF}} \mathbf e_4 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x25CF}} \mathbf e_j = 0$$, for $$i \neq j$$.
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade.
The following Cayley table shows the dot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:DotProduct.svg|720px]]
== Antidot product ==
The antidot product is a dual to the dot product. The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is often written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$".
The following Cayley table shows the antidot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:AntidotProduct.svg|720px]]
== See Also ==
* [[Geometric products]]
* [[Wedge products]]
f6e8dc95dcc541188fb58db2b6702e6d493f8155
Interior products
0
70
72
2023-07-15T06:27:41Z
Eric Lengyel
1
Created page with "The left and right ''interior products'' are special products in geometric algebra that are useful for performing [[projections]]. These products cancel common factors in their operands and thus reduce grade. Depending on the choice of dualization function, there are several possible interior products. We define the interior products in terms of the left and right [[complements]]. Interior products are also known as contraction products. == Left and Right Interior Prod..."
wikitext
text/x-wiki
The left and right ''interior products'' are special products in geometric algebra that are useful for performing [[projections]]. These products cancel common factors in their operands and thus reduce grade. Depending on the choice of dualization function, there are several possible interior products. We define the interior products in terms of the left and right [[complements]].
Interior products are also known as contraction products.
== Left and Right Interior Products ==
The ''left interior product'' between elements $$\mathbf a$$ and $$\mathbf b$$ is written as $$\mathbf a \mathbin{\unicode{x22A3}} \mathbf b$$ and defined as
:$$\mathbf a \mathbin{\unicode{x22A3}} \mathbf b = \underline{\mathbf a} \vee \mathbf b$$ .
The ''right interior product'' between elements $$\mathbf a$$ and $$\mathbf b$$ is written as $$\mathbf a \mathbin{\unicode{x22A2}} \mathbf b$$ and defined as
:$$\mathbf a \mathbin{\unicode{x22A2}} \mathbf b = \mathbf a \vee \overline{\mathbf b}$$ .
The left and right interior products satisfy the relationship
:$$\mathbf a \mathbin{\unicode{x22A3}} \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\left[\operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)\right]}\mathbf b \mathbin{\unicode{x22A2}} \mathbf a$$ .
The following Cayley table shows the interior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. Cells colored blue belong only to the left interior product and are zero for the right interior product. Cells colored red belong only to the right interior product and are zero for the left interior product. Cells colored purple along the diagonal belong to both the left and right interior products.
[[Image:InteriorProduct.svg|720px]]
== Left and Right Interior Antiproducts ==
Like all operations in geometric algebra, the interior products have duals, which we call ''interior antiproducts''. The right and left interior antiproducts between elements $$\mathbf a$$ and $$\mathbf b$$ are written as $$\mathbf a \mathbin{\unicode{x22A8}} \mathbf b$$ and $$\mathbf a \mathbin{\unicode{x2AE4}} \mathbf b$$, respectively, and they are defined as follows.
:$$\mathbf a \mathbin{\unicode{x22A8}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x22A2}} \underline{\mathbf b}} = \mathbf a \wedge \overline{\mathbf b}$$
:$$\mathbf a \mathbin{\unicode{x2AE4}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x22A3}} \underline{\mathbf b}} = \underline{\mathbf a} \wedge \mathbf b$$
The interior antiproducts are also related to the opposite interior products through the following equalities.
:$$\mathbf a \mathbin{\unicode{x22A8}} \mathbf b = \overline{\mathbf a \mathbin{\unicode{x22A3}} \mathbf b}$$
:$$\mathbf a \mathbin{\unicode{x2AE4}} \mathbf b = \underline{\mathbf a \mathbin{\unicode{x22A2}} \mathbf b}$$
The following Cayley table shows the interior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. Cells colored blue belong only to the left interior antiproduct and are zero for the right interior antiproduct. Cells colored red belong only to the right interior antiproduct and are zero for the left interior antiproduct. Cells colored purple along the diagonal belong to both the left and right interior antiproducts.
[[Image:InteriorAntiproduct.svg|720px]]
== See Also ==
* [[Projections]]
dffb5615cd31710e40482cffa6e6055385035863
File:WedgeProduct.svg
6
71
73
2023-07-15T06:28:22Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AntiwedgeProduct.svg
6
72
74
2023-07-15T06:28:31Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Exterior products
0
73
75
2023-07-15T06:28:35Z
Eric Lengyel
1
Created page with "The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct. The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\m..."
wikitext
text/x-wiki
The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct.
The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\mathbf a$$ and $$\mathbf b$$ are parallel, then their exterior product is zero. (Compare this to the [[dot product]], which is zero whenever $$\mathbf a$$ and $$\mathbf b$$ are orthogonal.)
== Exterior Product ==
The exterior product is widely known as the ''wedge product'' because it is written with an upward pointing wedge. The exterior product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \wedge \mathbf b$$ and read "$$\mathbf a$$ wedge $$\mathbf b$$". Grassmann called this the progressive combinatorial product.
The defining characteristic of the wedge product is that multiplying any vector $$\mathbf v$$ by itself produces zero: $$\mathbf v \wedge \mathbf v = 0$$. This implies that the wedge product is anticommutative for vectors, so we always have
:$$\mathbf v \wedge \mathbf w = -\mathbf w \wedge \mathbf v$$
for vectors $$\mathbf v$$ and $$\mathbf w$$. The wedge product is not anticommutative in general, however. For general basis elements $$\mathbf a$$ and $$\mathbf b$$, reversing the order of the operands satisfies the relationship
:$$\mathbf a \wedge \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\operatorname{gr}(\mathbf b)} \mathbf b \wedge \mathbf a$$ .
The wedge product adds the [[grades]] of its operands, so we have
:$$\operatorname{gr}(\mathbf a \wedge \mathbf b) = \operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)$$ .
The following Cayley table shows the exterior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:WedgeProduct.svg|720px]]
== Exterior Antiproduct ==
The exterior antiproduct is a dual to the exterior product. It is written with a downward pointing wedge and thus called the ''antiwedge product''. The exterior antiproduct $$\mathbf a \vee \mathbf b$$ is read "$$\mathbf a$$ antiwedge $$\mathbf b$$". Grassmann called this the regressive combinatorial product.
Whereas the wedge product combines the full dimensions of its operands, the antiwedge product combines the empty dimensions of its operands. The antiwedge product adds the [[antigrades]] of its operands, so we have
:$$\operatorname{ag}(\mathbf a \vee \mathbf b) = \operatorname{ag}(\mathbf a) + \operatorname{ag}(\mathbf b)$$ .
The following Cayley table shows the exterior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:AntiwedgeProduct.svg|720px]]
== De Morgan Laws ==
There are many possible exterior products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.
:$$\overline{\mathbf a \wedge \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \vee \overline{\mathbf b}$$
:$$\overline{\mathbf a \vee \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \wedge \overline{\mathbf b}$$
:$$\underline{\mathbf a \wedge \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \vee \underline{\mathbf b}$$
:$$\underline{\mathbf a \vee \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \wedge \underline{\mathbf b}$$
== General Properties ==
The following table lists several general properties of the wedge product and antiwedge product.
{| class="wikitable"
! Property !! Description
|-
| style="padding: 12px;" | $$\mathbf a \wedge \mathbf b = -\mathbf b \wedge \mathbf a$$
| style="padding: 12px;" | Anticommutativity of the wedge product for vectors $$\mathbf a$$ and $$\mathbf b$$.
|-
| style="padding: 12px;" | $$\mathbf a \vee \mathbf b = -\mathbf b \vee \mathbf a$$
| style="padding: 12px;" | Anticommutativity of the antiwedge product for antivectors $$\mathbf a$$ and $$\mathbf b$$.
|-
| style="padding: 12px;" | $$(\mathbf a \wedge \mathbf b) \wedge \mathbf c = \mathbf a \wedge (\mathbf b \wedge \mathbf c)$$
| style="padding: 12px;" | Associative law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$(\mathbf a \vee \mathbf b) \vee \mathbf c = \mathbf a \vee (\mathbf b \vee \mathbf c)$$
| style="padding: 12px;" | Associative law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$\mathbf a \wedge (\mathbf b + \mathbf c) = \mathbf a \wedge \mathbf b + \mathbf a \wedge \mathbf c$$
| style="padding: 12px;" | Distributive law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$\mathbf a \vee (\mathbf b + \mathbf c) = \mathbf a \vee \mathbf b + \mathbf a \vee \mathbf c$$
| style="padding: 12px;" | Distributive law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$(t\mathbf a) \wedge \mathbf b = \mathbf a \wedge (t\mathbf b) = t(\mathbf a \wedge \mathbf b)$$
| style="padding: 12px;" | Scalar factorization of the wedge product.
|-
| style="padding: 12px;" | $$(t\mathbf a) \vee \mathbf b = \mathbf a \vee (t\mathbf b) = t(\mathbf a \vee \mathbf b)$$
| style="padding: 12px;" | Scalar factorization of the antiwedge product.
|-
| style="padding: 12px;" | $$s \wedge \mathbf a = \mathbf a \wedge s = s\mathbf a$$
| style="padding: 12px;" | Wedge product of a [[scalar]] $$s$$ and any basis element $$\mathbf a$$.
|-
| style="padding: 12px;" | $$s \vee \mathbf a = \mathbf a \vee s = s\mathbf a$$
| style="padding: 12px;" | Antiwedge product of an [[antiscalar]] $$s$$ and any basis element $$\mathbf a$$.
|-
| style="padding: 12px;" | $$s \wedge t = st$$
| style="padding: 12px;" | Wedge product of [[scalars]] $$s$$ and $$t$$.
|-
| style="padding: 12px;" | $$s \vee t = st$$
| style="padding: 12px;" | Antiwedge product of [[antiscalars]] $$s$$ and $$t$$.
|}
== See Also ==
* [[Geometric products]]
* [[Dot products]]
* [[Complements]]
6b5584771d86941f2fe4d4e3a2e84f9b6f2c59d3
File:GeometricProduct.svg
6
74
76
2023-07-15T06:29:21Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:GeometricAntiproduct.svg
6
75
77
2023-07-15T06:29:32Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Geometric products
0
76
78
2023-07-15T06:29:36Z
Eric Lengyel
1
Created page with "The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct. == Geometric Product == The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct..."
wikitext
text/x-wiki
The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct.
== Geometric Product ==
The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$".
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to −'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$
:$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
Cells colored yellow correspond to the contribution from the [[wedge product]], and cells colored orange correspond to the contribution from the [[dot product]].
[[Image:GeometricProduct.svg|720px]]
== Geometric Antiproduct ==
The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$".
The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows.
:$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$
:$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$.
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$.
Cells colored yellow correspond to the contribution from the [[antiwedge product]], and cells colored orange correspond to the contribution from the [[antidot product]].
[[Image:GeometricAntiproduct.svg|720px]]
== De Morgan Laws ==
There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$
== See Also ==
* [[Wedge products]]
* [[Dot products]]
* [[Complements]]
a5d1871f77afb1886212de91098d2fb5af68c274
Wedge products
0
77
79
2023-07-15T06:30:01Z
Eric Lengyel
1
Redirected page to [[Exterior products]]
wikitext
text/x-wiki
#REDIRECT [[Exterior products]]
886cc83a5412c43e200ac8431c2f86522257eeb8
File:Duality.svg
6
78
80
2023-07-15T06:33:16Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Duality
0
79
81
2023-07-15T06:33:26Z
Eric Lengyel
1
Created page with "[[Image:Duality.svg|480px|thumb|right|'''Figure 1.''' The coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as the one-dimensional span of a single vector representing a homogeneous point or as the $$(n - 1)$$-dimensional span of all orthogonal vectors representing a homogeneous plane. Geometrically, these two interpretations are dual to each other, and their distances to the origin are reciprocals of each other.]] The concept of duality can be understood geometric..."
wikitext
text/x-wiki
[[Image:Duality.svg|480px|thumb|right|'''Figure 1.''' The coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as the one-dimensional span of a single vector representing a homogeneous point or as the $$(n - 1)$$-dimensional span of all orthogonal vectors representing a homogeneous plane. Geometrically, these two interpretations are dual to each other, and their distances to the origin are reciprocals of each other.]]
The concept of duality can be understood geometrically in an ''n''-dimensional projective setting by considering both the subspace that an object occupies and the complementary subspace that the object concurrently does not occupy. The dimensionalities of these two components always sum to ''n'', and they represent the ''space'' and ''antispace'' associated with the object. The example shown in '''Figure 1''' demonstrates the duality between homogeneous points and planes in a four-dimensional projective space. The quadruplet of coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as a vector pointing from the origin toward a specific location on the projection subspace $$w = 1$$. This vector corresponds to the one-dimensional space of the point that it represents. The dual of a point materializes when we consider all of the directions of space that are orthogonal to the single direction $$(p_x, p_y, p_z, p_w)$$. As illustrated by the figure, these directions span an $$(n - 1)$$-dimensional subspace that intersects the projection subspace at a plane when $$n = 4$$. In this way, the coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as both a point and a plane, and they are duals of each other.
When we express the coordinates $$(p_x, p_y, p_z, p_w)$$ on the [[vector]] basis as $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$, it explicitly states that we are working with a single spatial dimension representing a point, and the ambiguity is removed. Similarly, if we express the coordinates on the [[antivector]] basis as $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$, then we are working with the three orthogonal spatial dimensions representing a plane. In each case, the subscripts of the basis elements tell us which basis vectors are present in the representation, and this defines the space of the object. The subscripts also tell us which basis vectors are absent in the representation, and this defines the antispace of the object. Acknowledging the existence of both the space and the antispace of any object and assigning equal meaningfulness to them allows us to explore the nature of duality to its fullest. A vector $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is never only a point, but both a point and a plane simultaneously, where the point exists in space, and the plane exists in antispace. Likewise, an antivector $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$ is never only a plane, but both a plane and a point simultaneously, where the plane exists in space, and the point exists in antispace. If we study only the spatial facet of these objects, then we are missing half of a bigger picture.
== See Also ==
* [[Complements]]
f38474aaff72e60168e22e5ca8b8ffbb6bb66ff7
File:Point.svg
6
80
82
2023-07-15T06:35:24Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Point
0
81
83
2023-07-15T06:35:28Z
Eric Lengyel
1
Created page with "[[Image:point.svg|400px|thumb|right|'''Figure 1.''' A point is the intersection of a 4D vector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ . All points possess the [[geometric property]]. The [[bulk]] of a point is given by its $$x$$, $$y$$, and $$z$$ coordinates, and..."
wikitext
text/x-wiki
[[Image:point.svg|400px|thumb|right|'''Figure 1.''' A point is the intersection of a 4D vector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ .
All points possess the [[geometric property]].
The [[bulk]] of a point is given by its $$x$$, $$y$$, and $$z$$ coordinates, and the [[weight]] of a point is given by its $$w$$ coordinate. A point is [[unitized]] when $$p_w^2 = 1$$.
When used as an operator in a sandwich with the [[geometric antiproduct]], a point is a specific kind of [[flector]] that performs an [[inversion]] through itself.
A [[translation]] operator $$\mathbf T$$ that moves a point $$\mathbf p$$ to the origin is given by
:$$\mathbf T = \underline{\mathbf p} \vee \mathbf e_{321} + 2\mathbf p \wedge \mathbf e_{321} = -p_{x\vphantom{y}} \mathbf e_{23} - p_y \mathbf e_{31} - p_{z\vphantom{y}} \mathbf e_{12} + 2p_w {\large\unicode{x1D7D9}}$$ .
== Points at Infinity ==
If the weight of a point is zero (i.e., its $$w$$ coordinate is zero), then the point is contained in the horizon infinitely far away in the direction $$(x, y, z)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
<br clear="right" />
== See Also ==
* [[Line]]
* [[Plane]]
76bfb68972462ed0ab7470c3979f4dc49d2547e9
Commutators
0
82
84
2023-07-15T06:36:24Z
Eric Lengyel
1
Created page with "In geometric algebra, there are four ''commutator'' products defined as follows. :$$[\mathbf a, \mathbf b]^{\Large\unicode{x27D1}}_- = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27D1}} \mathbf b - \mathbf b \mathbin{\unicode{x27D1}} \mathbf a\right)$$ :$$[\mathbf a, \mathbf b]^{\Large\unicode{x27D1}}_+ = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27D1}} \mathbf b + \mathbf b \mathbin{\unicode{x27D1}} \mathbf a\right)$$ :$$[\mathbf a, \mathbf b]^{\Large\unicode..."
wikitext
text/x-wiki
In geometric algebra, there are four ''commutator'' products defined as follows.
:$$[\mathbf a, \mathbf b]^{\Large\unicode{x27D1}}_- = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27D1}} \mathbf b - \mathbf b \mathbin{\unicode{x27D1}} \mathbf a\right)$$
:$$[\mathbf a, \mathbf b]^{\Large\unicode{x27D1}}_+ = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27D1}} \mathbf b + \mathbf b \mathbin{\unicode{x27D1}} \mathbf a\right)$$
:$$[\mathbf a, \mathbf b]^{\Large\unicode{x27C7}}_- = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27C7}} \mathbf b - \mathbf b \mathbin{\unicode{x27C7}} \mathbf a\right)$$
:$$[\mathbf a, \mathbf b]^{\Large\unicode{x27C7}}_+ = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27C7}} \mathbf b + \mathbf b \mathbin{\unicode{x27C7}} \mathbf a\right)$$
Commutators provide a way to formulate [[join and meet]] operations as well as [[Euclidean distances]] between different types of geometric objects. A commutator is also used to determine a new [[line]] containing the two closest points on a pair of skew [[lines]].
== See Also ==
* [[Join and meet]]
* [[Euclidean distance]]
4f7945ea7e17125c4e5c52bd7358b7387ea683d1
Grade
0
83
85
2023-07-15T06:36:58Z
Eric Lengyel
1
Redirected page to [[Grade and antigrade]]
wikitext
text/x-wiki
#REDIRECT [[Grade and antigrade]]
22d877841f52c9ad1e9fa040e3fdceb9994ec5af
Antigrade
0
84
86
2023-07-15T06:37:07Z
Eric Lengyel
1
Redirected page to [[Grade and antigrade]]
wikitext
text/x-wiki
#REDIRECT [[Grade and antigrade]]
22d877841f52c9ad1e9fa040e3fdceb9994ec5af
Scalars
0
85
87
2023-07-15T06:39:24Z
Eric Lengyel
1
Redirected page to [[Scalars and antiscalars]]
wikitext
text/x-wiki
#REDIRECT [[Scalars and antiscalars]]
2adee2d7835bba6d84d4c981fd9dd78635eff37a
Antiscalars
0
86
88
2023-07-15T06:39:32Z
Eric Lengyel
1
Redirected page to [[Scalars and antiscalars]]
wikitext
text/x-wiki
#REDIRECT [[Scalars and antiscalars]]
2adee2d7835bba6d84d4c981fd9dd78635eff37a
Vectors
0
87
89
2023-07-15T06:40:20Z
Eric Lengyel
1
Redirected page to [[Vector]]
wikitext
text/x-wiki
#REDIRECT [[Vector]]
a9769134b69352ae0540e7e7f328ecbbad3c42ee
Vector
0
88
90
2023-07-15T06:40:57Z
Eric Lengyel
1
Created page with "A ''vector'' in a geometric algebra is an element composed entirely of components having grade 1. == See Also == * [[Bivector]] * [[Trivector]] * [[Antivector]]"
wikitext
text/x-wiki
A ''vector'' in a geometric algebra is an element composed entirely of components having grade 1.
== See Also ==
* [[Bivector]]
* [[Trivector]]
* [[Antivector]]
bc550d1b43d0fe5a387354c613108018e40eac4a
Antivectors
0
89
91
2023-07-15T06:41:31Z
Eric Lengyel
1
Redirected page to [[Antivector]]
wikitext
text/x-wiki
#REDIRECT [[Antivector]]
7989830103a2a3811748a8000d40aefc840c792f
Antivector
0
90
92
2023-07-15T06:42:32Z
Eric Lengyel
1
Created page with "An ''antivector'' in a geometric algebra is an element composed entirely of components having [[antigrade]] 1. In an ''n''-dimensional geometric algebra, these are the elements having grade $$n - 1$$. == See Also == * [[Vector]] * [[Bivector]] * [[Trivector]]"
wikitext
text/x-wiki
An ''antivector'' in a geometric algebra is an element composed entirely of components having [[antigrade]] 1. In an ''n''-dimensional geometric algebra, these are the elements having grade $$n - 1$$.
== See Also ==
* [[Vector]]
* [[Bivector]]
* [[Trivector]]
489cea4c3d8a287208223f177fc18df38fb3653a
Bivector
0
91
93
2023-07-15T06:42:59Z
Eric Lengyel
1
Created page with "A ''bivector'' in a geometric algebra is an element composed entirely of components having [[grade]] 2. == See Also == * [[Vector]] * [[Trivector]] * [[Antivector]]"
wikitext
text/x-wiki
A ''bivector'' in a geometric algebra is an element composed entirely of components having [[grade]] 2.
== See Also ==
* [[Vector]]
* [[Trivector]]
* [[Antivector]]
37136a3e0ae1b4a329449a91e0afa730998b7422
Trivector
0
92
94
2023-07-15T06:43:19Z
Eric Lengyel
1
Created page with "A ''trivector'' in a geometric algebra is an element composed entirely of components having [[grade]] 3. == See Also == * [[Vector]] * [[Bivector]] * [[Antivector]]"
wikitext
text/x-wiki
A ''trivector'' in a geometric algebra is an element composed entirely of components having [[grade]] 3.
== See Also ==
* [[Vector]]
* [[Bivector]]
* [[Antivector]]
a289704a5444cc417affd737ad6888964fc8e3d1
Points
0
93
95
2023-07-15T06:43:56Z
Eric Lengyel
1
Redirected page to [[Point]]
wikitext
text/x-wiki
#REDIRECT [[Point]]
7b65de33209ef5449918fa5f8814c2e3721ec62f
Lines
0
94
96
2023-07-15T06:44:05Z
Eric Lengyel
1
Redirected page to [[Line]]
wikitext
text/x-wiki
#REDIRECT [[Line]]
ecb926a9291d9db11c3696c750a5cf7901eed056
Planes
0
95
97
2023-07-15T06:44:13Z
Eric Lengyel
1
Redirected page to [[Plane]]
wikitext
text/x-wiki
#REDIRECT [[Plane]]
ea9ce71332228b2b2df398882c1a5777df2df690
Rotations
0
96
98
2023-07-15T06:44:20Z
Eric Lengyel
1
Redirected page to [[Rotation]]
wikitext
text/x-wiki
#REDIRECT [[Rotation]]
16ea69fb8455e069f0c5206eee190a38f97c0353
Reflections
0
97
99
2023-07-15T06:44:27Z
Eric Lengyel
1
Redirected page to [[Reflection]]
wikitext
text/x-wiki
#REDIRECT [[Reflection]]
d97ab92872e66d5e96308dcd76ade7d75bace388
Translations
0
98
100
2023-07-15T06:44:38Z
Eric Lengyel
1
Redirected page to [[Translation]]
wikitext
text/x-wiki
#REDIRECT [[Translation]]
03fd09c41513154b9b7e7331fe81e0cd601f992e
Bivectors
0
99
101
2023-07-15T06:44:55Z
Eric Lengyel
1
Redirected page to [[Bivector]]
wikitext
text/x-wiki
#REDIRECT [[Bivector]]
7fc5bc6464e935e0b21791d0f323dfff5c2b780f
Trivectors
0
100
102
2023-07-15T06:45:09Z
Eric Lengyel
1
Redirected page to [[Trivector]]
wikitext
text/x-wiki
#REDIRECT [[Trivector]]
fddc959d7c29ca1f5189071f80d84b038e0332e5
Grades
0
101
103
2023-07-15T06:45:34Z
Eric Lengyel
1
Redirected page to [[Grade and antigrade]]
wikitext
text/x-wiki
#REDIRECT [[Grade and antigrade]]
22d877841f52c9ad1e9fa040e3fdceb9994ec5af
Complement
0
102
104
2023-07-15T06:45:54Z
Eric Lengyel
1
Redirected page to [[Complements]]
wikitext
text/x-wiki
#REDIRECT [[Complements]]
dbc203c2b7f5656d8672fc940b154ebcadfe4ebb
Reverse
0
103
105
2023-07-15T06:46:07Z
Eric Lengyel
1
Redirected page to [[Reverses]]
wikitext
text/x-wiki
#REDIRECT [[Reverses]]
e7287b70460af8f2068d72d6fbcd48be51aa2d86
Bulk
0
104
106
2023-07-15T06:46:24Z
Eric Lengyel
1
Redirected page to [[Bulk and weight]]
wikitext
text/x-wiki
#REDIRECT [[Bulk and weight]]
abc962efe81a15c140f05e2c1c3d41424f0daedb
Weight
0
105
107
2023-07-15T06:46:37Z
Eric Lengyel
1
Redirected page to [[Bulk and weight]]
wikitext
text/x-wiki
#REDIRECT [[Bulk and weight]]
abc962efe81a15c140f05e2c1c3d41424f0daedb
Unitized
0
106
108
2023-07-15T06:47:08Z
Eric Lengyel
1
Redirected page to [[Unitization]]
wikitext
text/x-wiki
#REDIRECT [[Unitization]]
5dd28b722eed577a6a685c20a1f3610adf752d69
Antiscalar
0
107
109
2023-07-15T06:47:22Z
Eric Lengyel
1
Redirected page to [[Scalars and antiscalars]]
wikitext
text/x-wiki
#REDIRECT [[Scalars and antiscalars]]
2adee2d7835bba6d84d4c981fd9dd78635eff37a
Weight norm
0
108
110
2023-07-15T06:47:50Z
Eric Lengyel
1
Redirected page to [[Geometric norm]]
wikitext
text/x-wiki
#REDIRECT [[Geometric norm]]
5044e2e82ada4d19757a27fa0864a5c86bdf1c61
Bulk norm
0
109
111
2023-07-15T06:48:01Z
Eric Lengyel
1
Redirected page to [[Geometric norm]]
wikitext
text/x-wiki
#REDIRECT [[Geometric norm]]
5044e2e82ada4d19757a27fa0864a5c86bdf1c61
Scalar
0
110
112
2023-07-15T06:48:17Z
Eric Lengyel
1
Redirected page to [[Scalars and antiscalars]]
wikitext
text/x-wiki
#REDIRECT [[Scalars and antiscalars]]
2adee2d7835bba6d84d4c981fd9dd78635eff37a
Geometric antiproduct
0
111
113
2023-07-15T06:48:50Z
Eric Lengyel
1
Redirected page to [[Geometric product]]
wikitext
text/x-wiki
#REDIRECT [[Geometric product]]
412c7f80af4e4652833d00702df9f0d5cdbfa99f
Geometric antiproduct
0
111
114
113
2023-07-15T06:49:08Z
Eric Lengyel
1
Changed redirect target from [[Geometric product]] to [[Geometric products]]
wikitext
text/x-wiki
#REDIRECT [[Geometric products]]
a791a499343bcafe92583512ac007a6806f8ecf8
Geometric product
0
112
115
2023-07-15T06:49:20Z
Eric Lengyel
1
Redirected page to [[Geometric products]]
wikitext
text/x-wiki
#REDIRECT [[Geometric products]]
a791a499343bcafe92583512ac007a6806f8ecf8
Exterior product
0
113
116
2023-07-15T06:49:37Z
Eric Lengyel
1
Redirected page to [[Exterior products]]
wikitext
text/x-wiki
#REDIRECT [[Exterior products]]
886cc83a5412c43e200ac8431c2f86522257eeb8
Exterior antiproduct
0
114
117
2023-07-15T06:49:48Z
Eric Lengyel
1
Redirected page to [[Exterior products]]
wikitext
text/x-wiki
#REDIRECT [[Exterior products]]
886cc83a5412c43e200ac8431c2f86522257eeb8
Wedge product
0
115
118
2023-07-15T06:50:01Z
Eric Lengyel
1
Redirected page to [[Exterior products]]
wikitext
text/x-wiki
#REDIRECT [[Exterior products]]
886cc83a5412c43e200ac8431c2f86522257eeb8
Antiwedge product
0
116
119
2023-07-15T06:50:16Z
Eric Lengyel
1
Redirected page to [[Exterior products]]
wikitext
text/x-wiki
#REDIRECT [[Exterior products]]
886cc83a5412c43e200ac8431c2f86522257eeb8
Antiwedge products
0
117
120
2023-07-15T06:50:25Z
Eric Lengyel
1
Redirected page to [[Exterior products]]
wikitext
text/x-wiki
#REDIRECT [[Exterior products]]
886cc83a5412c43e200ac8431c2f86522257eeb8
Projection
0
118
121
2023-07-15T06:50:47Z
Eric Lengyel
1
Redirected page to [[Projections]]
wikitext
text/x-wiki
#REDIRECT [[Projections]]
93824c4da8a89ce3a48c45b49e27882cd1d02bf1
Commutator
0
119
122
2023-07-15T06:51:07Z
Eric Lengyel
1
Redirected page to [[Commutators]]
wikitext
text/x-wiki
#REDIRECT [[Commutators]]
4909cbe94c5aa206f34b6a86f58e841a75196f21
Dot product
0
120
123
2023-07-15T06:51:27Z
Eric Lengyel
1
Redirected page to [[Dot products]]
wikitext
text/x-wiki
#REDIRECT [[Dot products]]
ad1a39bb977e36df47bab54d3c59ac9163d96b59
Antidot product
0
121
124
2023-07-15T06:51:39Z
Eric Lengyel
1
Redirected page to [[Dot products]]
wikitext
text/x-wiki
#REDIRECT [[Dot products]]
ad1a39bb977e36df47bab54d3c59ac9163d96b59
Interior product
0
122
125
2023-07-15T06:51:53Z
Eric Lengyel
1
Redirected page to [[Interior products]]
wikitext
text/x-wiki
#REDIRECT [[Interior products]]
603a1e2f20b8832eec365174b7092534683f8d1c
Interior antiproduct
0
123
126
2023-07-15T06:52:02Z
Eric Lengyel
1
Redirected page to [[Interior products]]
wikitext
text/x-wiki
#REDIRECT [[Interior products]]
603a1e2f20b8832eec365174b7092534683f8d1c
Main Page
0
1
127
2
2023-07-15T06:53:52Z
Eric Lengyel
1
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf x$$, denoted by $$\operatorname{gr}(\mathbf x)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf x$$. Denoted by $$\operatorname{ag}(\mathbf x)$$, the antigrade of $$\mathbf x$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Reverses]]
* [[Bulk and weight]]
* [[Attitude]]
* [[Duality]]
* [[Geometric norm]]
* [[Geometric property]]
* [[Unitization]]
=== Products and other binary operations ===
* [[Geometric products]]
* [[Exterior products]]
* [[Interior products]]
* [[Dot products]]
* [[Join and meet]]
* [[Projections]]
* [[Commutators]]
* [[Euclidean distance]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
d20959634e51c0ab15e0a35693880f1f271479fd
169
127
2023-08-05T05:17:29Z
Eric Lengyel
1
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf x$$, denoted by $$\operatorname{gr}(\mathbf x)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf x$$. Denoted by $$\operatorname{ag}(\mathbf x)$$, the antigrade of $$\mathbf x$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Reverses]]
* [[Bulk and weight]]
* [[Attitude]]
* [[Duality]]
* [[Geometric norm]]
* [[Geometric property]]
* [[Unitization]]
=== Products and other binary operations ===
* [[Geometric products]]
* [[Exterior products]]
* [[Interior products]]
* [[Dot products]]
* [[Join and meet]]
* [[Projections]]
* [[Commutators]]
* [[Euclidean distance]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
=== Research Articles ===
* [[Projective Geometric Algebra Done Right]]
* [[Symmetries in Projective Geometric Algebra]]
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]
83323fc788dc9064eb7b288469e189f98adf8c77
Flectors
0
124
128
2023-07-15T06:56:20Z
Eric Lengyel
1
Redirected page to [[Flector]]
wikitext
text/x-wiki
#REDIRECT [[Flector]]
df2e8d26f9aec77316c1c9c72925aec4f325e463
Motors
0
125
129
2023-07-15T06:56:29Z
Eric Lengyel
1
Redirected page to [[Motor]]
wikitext
text/x-wiki
#REDIRECT [[Motor]]
7883954015c088600f1b3a6d2956e64a817f5910
Antireverse
0
126
130
2023-07-15T06:57:01Z
Eric Lengyel
1
Redirected page to [[Reverses]]
wikitext
text/x-wiki
#REDIRECT [[Reverses]]
e7287b70460af8f2068d72d6fbcd48be51aa2d86
Inversions
0
127
131
2023-07-15T06:58:33Z
Eric Lengyel
1
Redirected page to [[Inversion]]
wikitext
text/x-wiki
#REDIRECT [[Inversion]]
6cf15f76e05cf617bec1e7e1aeeab529145dc483
Transflections
0
128
132
2023-07-15T06:59:21Z
Eric Lengyel
1
Redirected page to [[Transflection]]
wikitext
text/x-wiki
#REDIRECT [[Transflection]]
33024da1c7aaa47dc9ed60ea9780998ad4ad14fb
Join
0
129
133
2023-07-15T08:48:49Z
Eric Lengyel
1
Redirected page to [[Join and meet]]
wikitext
text/x-wiki
#REDIRECT [[Join and meet]]
4964b46f907afce0b99e41e767447f2c866235ce
Meet
0
130
134
2023-07-15T08:48:57Z
Eric Lengyel
1
Redirected page to [[Join and meet]]
wikitext
text/x-wiki
#REDIRECT [[Join and meet]]
4964b46f907afce0b99e41e767447f2c866235ce
Euclidean distance
0
49
135
51
2023-08-01T05:04:46Z
Eric Lengyel
1
wikitext
text/x-wiki
The Euclidean distance between geometric objects can be measured by homogeneous [[magnitudes]] of [[attitudes]]. In particular, the Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two objects '''a''' and '''b''' is given by
:$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$.
The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
{| class="wikitable"
! Formula !! Interpretation !! Illustration
|-
| style="padding: 12px;" | $$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$
| style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]]
|-
| style="padding: 12px;" | $$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]]
|-
| style="padding: 12px;" | $$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]]
|-
| style="padding: 12px;" | $$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]]
|}
== See Also ==
* [[Geometric norm]]
* [[Commutators]]
e10a7eb588fc7a5b9ae810adc37558ff051784de
138
135
2023-08-01T05:06:01Z
Eric Lengyel
1
/* See Also */
wikitext
text/x-wiki
The Euclidean distance between geometric objects can be measured by homogeneous [[magnitudes]] of [[attitudes]]. In particular, the Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two objects '''a''' and '''b''' is given by
:$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$.
The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
{| class="wikitable"
! Formula !! Interpretation !! Illustration
|-
| style="padding: 12px;" | $$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$
| style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]]
|-
| style="padding: 12px;" | $$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]]
|-
| style="padding: 12px;" | $$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]]
|-
| style="padding: 12px;" | $$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]]
|}
== See Also ==
* [[Geometric norm]]
* [[Magnitude]]
* [[Attitude]]
7ec0c59795c7e24242b794e3246adc7ac799fdac
141
138
2023-08-01T05:23:24Z
Eric Lengyel
1
wikitext
text/x-wiki
The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by
:$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a\right\Vert_\unicode{x25CB} \vee \left\Vert\mathbf b\right\Vert_\unicode{x25CB}$$.
The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
{| class="wikitable"
! Formula !! Interpretation !! Illustration
|-
| style="padding: 12px;" | $$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$
| style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]]
|-
| style="padding: 12px;" | $$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]]
|-
| style="padding: 12px;" | $$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]]
|-
| style="padding: 12px;" | $$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]]
|}
== See Also ==
* [[Geometric norm]]
* [[Magnitude]]
* [[Attitude]]
0033a5c8461b881427534bbacbba8044a0eae36c
142
141
2023-08-03T01:38:06Z
Eric Lengyel
1
wikitext
text/x-wiki
The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by
:$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \vee \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$.
The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
{| class="wikitable"
! Formula !! Interpretation !! Illustration
|-
| style="padding: 12px;" | $$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$
| style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]]
|-
| style="padding: 12px;" | $$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]]
|-
| style="padding: 12px;" | $$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]]
|-
| style="padding: 12px;" | $$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]]
|}
== See Also ==
* [[Geometric norm]]
* [[Magnitude]]
* [[Attitude]]
dfab07512fadc51c9ec50ad4cf6cd119b4c729a7
143
142
2023-08-03T01:38:59Z
Eric Lengyel
1
wikitext
text/x-wiki
The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by
:$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$.
The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
{| class="wikitable"
! Formula !! Interpretation !! Illustration
|-
| style="padding: 12px;" | $$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$
| style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]]
|-
| style="padding: 12px;" | $$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]]
|-
| style="padding: 12px;" | $$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]]
|-
| style="padding: 12px;" | $$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$
| style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]]
|}
== See Also ==
* [[Geometric norm]]
* [[Magnitude]]
* [[Attitude]]
b1224f065b5749d6ae173a42e5341b5d82babdc9
Attitudes
0
131
136
2023-08-01T05:04:57Z
Eric Lengyel
1
Redirected page to [[Attitude]]
wikitext
text/x-wiki
#REDIRECT [[Attitude]]
7d3e673cecacdfeaa3bd5716fbde4fe9ccaf29c0
Magnitudes
0
132
137
2023-08-01T05:05:34Z
Eric Lengyel
1
Redirected page to [[Magnitude]]
wikitext
text/x-wiki
#REDIRECT [[Magnitude]]
f462b3359c6201fe26694e6162b42f2482a010fa
Euclidean distances
0
133
139
2023-08-01T05:06:22Z
Eric Lengyel
1
Redirected page to [[Euclidean distance]]
wikitext
text/x-wiki
#REDIRECT [[Euclidean distance]]
2d4a54ecc0ffef922128c12ba72273f89092b4b8
Magnitude
0
24
140
26
2023-08-01T05:07:23Z
Eric Lengyel
1
/* Examples */
wikitext
text/x-wiki
A ''magnitude'' is a quantity that represents a concrete distance of some kind. In rigid geometric algebra, a magnitude $$\mathbf z$$ is composed of two components, a scalar and an antiscalar, as follows:
:$$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
Magnitudes are homogeneous just like everything else in a projective geometric algebra. This means it has both a [[bulk]] and a [[weight]], and it is [[unitized]] by making the magnitude of its weight one.
=== Examples ===
* The [[geometric norm]] produces a magnitude that gives the perpendicular distance between an object and the origin. This is also half the distance that the origin is moved by an object used as an operator.
* [[Euclidean distances]] between objects are expressed as magnitudes given by the sum of the [[bulk norm]] and [[weight norm]] of expressions involving [[attitudes]].
* Exponentiating the magnitude $$\delta\mathbf 1 + \phi {\large\unicode{x1d7d9}}$$ produces a [[motor]] for which $$\delta/\phi$$ is the pitch of the screw transformation.
== See Also ==
* [[Geometric norm]]
* [[Unitization]]
b5887528c17e0ce5dc5791e692a5d10b04ab5e5a
Translation
0
31
144
33
2023-08-04T07:46:14Z
Eric Lengyel
1
wikitext
text/x-wiki
__NOTOC__
A ''translation'' is a proper isometry of Euclidean space.
The specific kind of [[motor]]
:$$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$
performs a translation by twice the displacement vector $$\mathbf t = (t_x, t_y, t_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\mathbf t$$.
== Exponential Form ==
A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as
:$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{1}{2}\delta \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$
== Matrix Form ==
When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix
:$$\begin{bmatrix}
1 & 0 & 0 & t_x \\
0 & 1 & 0 & t_y \\
0 & 0 & 1 & t_z \\
0 & 0 & 0 & 1 \\
\end{bmatrix}$$ .
== Translation to Origin ==
A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator
:$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ .
== Calculation ==
The exact translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2t_xp_w)\mathbf e_1 + (p_y + 2t_yp_w)\mathbf e_2 + (p_z + 2t_zp_w)\mathbf e_3 + p_w\mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2t_y l_{vz} - 2t_z l_{vy})\mathbf e_{23} + (l_{my} + 2t_z l_{vx} - 2t_x l_{vz})\mathbf e_{31} + (l_{mz} + 2t_x l_{vy} - 2t_y l_{vx})\mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2t_xg_x - 2t_yg_y - 2t_zg_z) \mathbf e_{321}$$
|}
== See Also ==
* [[Dual translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
885a9643f3d8fd6c99c5066bbae513d534cc5fc4
Antiprojection
0
136
152
2023-08-05T01:58:07Z
Eric Lengyel
1
Redirected page to [[Projections]]
wikitext
text/x-wiki
#REDIRECT [[Projections]]
93824c4da8a89ce3a48c45b49e27882cd1d02bf1
File:Antispace1.svg
6
138
155
2023-08-05T03:55:11Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Antispace2.svg
6
139
156
2023-08-05T03:55:55Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Antispace3.svg
6
140
157
2023-08-05T03:56:14Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Antispace4.svg
6
141
158
2023-08-05T03:56:27Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Antispace5.svg
6
142
164
2023-08-05T05:12:14Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Motor
0
3
170
4
2023-08-06T05:26:32Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\mathbf L$$ and a displacement along the same line.]]
A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ .
To possess the [[geometric property]], the components of $$\mathbf Q$$ must satisfy the equation
:$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ .
Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions.
An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]].
== Simple Motors ==
If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line.
In the case of a pure translation, the motor $$\mathbf T$$ is given by
:$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ ,
and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$.
In the case of a pure rotation, the motor $$\mathbf R$$ is given by
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$.
== Motors Built from Geometry ==
Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table.
{| class="wikitable"
! Motor|| Description
|-
| style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$.
$$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
$$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}
=\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\
+\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\
+\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\
+\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$.
$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$.
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
|}
== Norm ==
The [[bulk norm]] of a motor $$\mathbf Q$$ is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ .
The [[geometric norm]] of a motor $$\mathbf Q$$ is thus
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$.
== Exponential Form ==
A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ .
This expands to
:$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ ,
and replacing the [[line]] $$\boldsymbol l$$ with its components gives us
:$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ .
A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ .
The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation.
== Logarithm ==
Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations
:$$Q_{mw} = -d\sin\phi$$
:$$Q_{vw} = \cos\phi$$ .
Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then,
:$$d = -\dfrac{Q_{mw}}{s}$$
:$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ .
If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required.
The components of $$\boldsymbol l$$ are then given by
:$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$
:$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ .
In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$.
== Square Root ==
The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case.
Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ ,
where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ .
Applying several more trigonometric identities, we now observe
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ .
The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ ,
which means that
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ .
The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields
:$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ .
The square root of a general motor $$\mathbf Q$$ is thus given by
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ .
If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ .
== Factorization ==
Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating
:$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ .
The motor $$\mathbf T$$ is then given by
:$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ .
The original motor $$\mathbf Q$$ can now be expressed as
:$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ ,
where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors.
== Conversion from Motor to Matrix ==
Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices
:$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Motor ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant +1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$
:$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$
:$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$
:$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$
:$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$
:$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$
:$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$
:$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$
:$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$
If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate
:$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ ,
where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by
$$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$
$$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$
$$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$
$$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ .
== Motor Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)p_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})p_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})p_z + 2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vw}Q_{mx} - Q_{vx}Q_{mw})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2Q_{vz}^2 -2Q_{vx}^2))p_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})p_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})p_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vw}Q_{my} - Q_{vy}Q_{mw})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2))p_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})p_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})p_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vw}Q_{mz} - Q_{vz}Q_{mw})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{vx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{vy} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{vy} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{vz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{vz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{vx} + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(Q_{vy}Q_{my} + Q_{vz}Q_{mz})l_{vx} + 2(Q_{vy}Q_{mx} + Q_{vx}Q_{my} - Q_{vz}Q_{mw} - Q_{vw}Q_{mz})l_{vy} + 2(Q_{vz}Q_{mx} + Q_{vx}Q_{mz} + Q_{vy}Q_{mw} + Q_{vw}Q_{my})l_{vz} + (1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{mx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{my} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(Q_{vz}Q_{mz} + Q_{vx}Q_{mx})l_{vy} + 2(Q_{vz}Q_{my} + Q_{vy}Q_{mz} - Q_{vx}Q_{mw} - Q_{vw}Q_{mx})l_{vz} + 2(Q_{vx}Q_{my} + Q_{vy}Q_{mx} + Q_{vz}Q_{mw} + Q_{vw}Q_{mz})l_{vx} + (1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{my} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{mz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(Q_{vx}Q_{mx} + Q_{vy}Q_{my})l_{vz} + 2(Q_{vx}Q_{mz} + Q_{vz}Q_{mx} - Q_{vy}Q_{mw} - Q_{vw}Q_{my})l_{vx} + 2(Q_{vy}Q_{mz} + Q_{vz}Q_{my} + Q_{vx}Q_{mw} + Q_{vw}Q_{mx})l_{vy} + (1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{mz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{mx} + 2(Q_{vy}Q_{vz} + 2Q_{vx}Q_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)g_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})g_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)g_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})g_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)g_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})g_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vx}Q_{mw} - Q_{vw}Q_{mx})g_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vy}Q_{mw} - Q_{vw}Q_{my})g_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vz}Q_{mw} - Q_{vw}Q_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Flector]]
* [[Translation]]
* [[Rotation]]
3ef86d77ffe8b148f4a944050f0e60a48625ffec
171
170
2023-08-06T05:36:16Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol L$$ and a displacement along the same line.]]
A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ .
To possess the [[geometric property]], the components of $$\mathbf Q$$ must satisfy the equation
:$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ .
Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions.
An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]].
== Simple Motors ==
If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line.
In the case of a pure translation, the motor $$\mathbf T$$ is given by
:$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ ,
and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$.
In the case of a pure rotation, the motor $$\mathbf R$$ is given by
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$.
== Motors Built from Geometry ==
Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table.
{| class="wikitable"
! Motor|| Description
|-
| style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$.
$$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
$$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}
=\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\
+\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\
+\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\
+\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$.
$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$.
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
|}
== Norm ==
The [[bulk norm]] of a motor $$\mathbf Q$$ is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ .
The [[geometric norm]] of a motor $$\mathbf Q$$ is thus
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$.
== Exponential Form ==
A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ .
This expands to
:$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ ,
and replacing the [[line]] $$\boldsymbol l$$ with its components gives us
:$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ .
A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ .
The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation.
== Logarithm ==
Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations
:$$Q_{mw} = -d\sin\phi$$
:$$Q_{vw} = \cos\phi$$ .
Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then,
:$$d = -\dfrac{Q_{mw}}{s}$$
:$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ .
If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required.
The components of $$\boldsymbol l$$ are then given by
:$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$
:$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ .
In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$.
== Square Root ==
The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case.
Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ ,
where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ .
Applying several more trigonometric identities, we now observe
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ .
The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ ,
which means that
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ .
The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields
:$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ .
The square root of a general motor $$\mathbf Q$$ is thus given by
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ .
If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ .
== Factorization ==
Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating
:$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ .
The motor $$\mathbf T$$ is then given by
:$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ .
The original motor $$\mathbf Q$$ can now be expressed as
:$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ ,
where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors.
== Conversion from Motor to Matrix ==
Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices
:$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Motor ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant +1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$
:$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$
:$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$
:$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$
:$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$
:$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$
:$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$
:$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$
:$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$
If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate
:$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ ,
where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by
$$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$
$$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$
$$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$
$$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ .
== Motor Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)p_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})p_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})p_z + 2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vw}Q_{mx} - Q_{vx}Q_{mw})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2Q_{vz}^2 -2Q_{vx}^2))p_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})p_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})p_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vw}Q_{my} - Q_{vy}Q_{mw})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2))p_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})p_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})p_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vw}Q_{mz} - Q_{vz}Q_{mw})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{vx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{vy} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{vy} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{vz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{vz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{vx} + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(Q_{vy}Q_{my} + Q_{vz}Q_{mz})l_{vx} + 2(Q_{vy}Q_{mx} + Q_{vx}Q_{my} - Q_{vz}Q_{mw} - Q_{vw}Q_{mz})l_{vy} + 2(Q_{vz}Q_{mx} + Q_{vx}Q_{mz} + Q_{vy}Q_{mw} + Q_{vw}Q_{my})l_{vz} + (1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{mx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{my} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(Q_{vz}Q_{mz} + Q_{vx}Q_{mx})l_{vy} + 2(Q_{vz}Q_{my} + Q_{vy}Q_{mz} - Q_{vx}Q_{mw} - Q_{vw}Q_{mx})l_{vz} + 2(Q_{vx}Q_{my} + Q_{vy}Q_{mx} + Q_{vz}Q_{mw} + Q_{vw}Q_{mz})l_{vx} + (1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{my} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{mz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(Q_{vx}Q_{mx} + Q_{vy}Q_{my})l_{vz} + 2(Q_{vx}Q_{mz} + Q_{vz}Q_{mx} - Q_{vy}Q_{mw} - Q_{vw}Q_{my})l_{vx} + 2(Q_{vy}Q_{mz} + Q_{vz}Q_{my} + Q_{vx}Q_{mw} + Q_{vw}Q_{mx})l_{vy} + (1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{mz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{mx} + 2(Q_{vy}Q_{vz} + 2Q_{vx}Q_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)g_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})g_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)g_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})g_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)g_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})g_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vx}Q_{mw} - Q_{vw}Q_{mx})g_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vy}Q_{mw} - Q_{vw}Q_{my})g_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vz}Q_{mw} - Q_{vw}Q_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Flector]]
* [[Translation]]
* [[Rotation]]
9e2120b826b981c401392c0a4bc5a75b048102d8
172
171
2023-08-06T05:36:24Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]]
A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ .
To possess the [[geometric property]], the components of $$\mathbf Q$$ must satisfy the equation
:$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ .
Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions.
An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]].
== Simple Motors ==
If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line.
In the case of a pure translation, the motor $$\mathbf T$$ is given by
:$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ ,
and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$.
In the case of a pure rotation, the motor $$\mathbf R$$ is given by
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$.
== Motors Built from Geometry ==
Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table.
{| class="wikitable"
! Motor|| Description
|-
| style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$.
$$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
$$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}
=\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\
+\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\
+\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\
+\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$.
$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$.
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
|}
== Norm ==
The [[bulk norm]] of a motor $$\mathbf Q$$ is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ .
The [[geometric norm]] of a motor $$\mathbf Q$$ is thus
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$.
== Exponential Form ==
A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ .
This expands to
:$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ ,
and replacing the [[line]] $$\boldsymbol l$$ with its components gives us
:$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ .
A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ .
The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation.
== Logarithm ==
Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations
:$$Q_{mw} = -d\sin\phi$$
:$$Q_{vw} = \cos\phi$$ .
Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then,
:$$d = -\dfrac{Q_{mw}}{s}$$
:$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ .
If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required.
The components of $$\boldsymbol l$$ are then given by
:$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$
:$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ .
In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$.
== Square Root ==
The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case.
Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ ,
where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ .
Applying several more trigonometric identities, we now observe
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ .
The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ ,
which means that
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ .
The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields
:$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ .
The square root of a general motor $$\mathbf Q$$ is thus given by
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ .
If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ .
== Factorization ==
Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating
:$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ .
The motor $$\mathbf T$$ is then given by
:$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ .
The original motor $$\mathbf Q$$ can now be expressed as
:$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ ,
where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors.
== Conversion from Motor to Matrix ==
Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices
:$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Motor ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant +1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$
:$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$
:$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$
:$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$
:$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$
:$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$
:$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$
:$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$
:$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$
If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate
:$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ ,
where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by
$$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$
$$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$
$$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$
$$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ .
== Motor Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)p_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})p_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})p_z + 2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vw}Q_{mx} - Q_{vx}Q_{mw})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2Q_{vz}^2 -2Q_{vx}^2))p_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})p_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})p_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vw}Q_{my} - Q_{vy}Q_{mw})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2))p_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})p_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})p_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vw}Q_{mz} - Q_{vz}Q_{mw})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{vx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{vy} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{vy} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{vz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{vz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{vx} + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(Q_{vy}Q_{my} + Q_{vz}Q_{mz})l_{vx} + 2(Q_{vy}Q_{mx} + Q_{vx}Q_{my} - Q_{vz}Q_{mw} - Q_{vw}Q_{mz})l_{vy} + 2(Q_{vz}Q_{mx} + Q_{vx}Q_{mz} + Q_{vy}Q_{mw} + Q_{vw}Q_{my})l_{vz} + (1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{mx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{my} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(Q_{vz}Q_{mz} + Q_{vx}Q_{mx})l_{vy} + 2(Q_{vz}Q_{my} + Q_{vy}Q_{mz} - Q_{vx}Q_{mw} - Q_{vw}Q_{mx})l_{vz} + 2(Q_{vx}Q_{my} + Q_{vy}Q_{mx} + Q_{vz}Q_{mw} + Q_{vw}Q_{mz})l_{vx} + (1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{my} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{mz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(Q_{vx}Q_{mx} + Q_{vy}Q_{my})l_{vz} + 2(Q_{vx}Q_{mz} + Q_{vz}Q_{mx} - Q_{vy}Q_{mw} - Q_{vw}Q_{my})l_{vx} + 2(Q_{vy}Q_{mz} + Q_{vz}Q_{my} + Q_{vx}Q_{mw} + Q_{vw}Q_{mx})l_{vy} + (1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{mz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{mx} + 2(Q_{vy}Q_{vz} + 2Q_{vx}Q_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)g_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})g_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)g_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})g_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)g_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})g_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vx}Q_{mw} - Q_{vw}Q_{mx})g_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vy}Q_{mw} - Q_{vw}Q_{my})g_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vz}Q_{mw} - Q_{vw}Q_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Flector]]
* [[Translation]]
* [[Rotation]]
7f91672f36582a9384d09927268e728c8c122263
Dot products
0
67
175
69
2023-08-25T18:28:10Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''dot product'' is the inner product in geometric algebra. The dot product its antiproduct are important for the calculation of angles and [[Geometric norm | norms]].
== Dot Product ==
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ ,
where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, and $$\mathbf G$$ is the $$16 \times 16$$ extended metric tensor.
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade.
The following Cayley table shows the dot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:DotProduct.svg|720px]]
== Antidot product ==
The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ ,
where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, and $$\mathbb G$$ is the $$16 \times 16$$ extended antimetric tensor.
The antidot product can also be derived from the dot product using the De Morgan relationship
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ .
The following Cayley table shows the antidot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:AntidotProduct.svg|720px]]
== See Also ==
* [[Geometric products]]
* [[Wedge products]]
bb18025c1a490b57eedc970836e128f836e5aac7
176
175
2023-08-25T18:29:13Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''dot product'' is the inner product in geometric algebra. The dot product its antiproduct are important for the calculation of angles and [[Geometric norm | norms]].
== Dot Product ==
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ ,
where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ extended metric tensor, and we are using ordinary matrix multiplication.
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade.
The following Cayley table shows the dot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:DotProduct.svg|720px]]
== Antidot product ==
The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ ,
where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ extended antimetric tensor.
The antidot product can also be derived from the dot product using the De Morgan relationship
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ .
The following Cayley table shows the antidot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:AntidotProduct.svg|720px]]
== See Also ==
* [[Geometric products]]
* [[Wedge products]]
2fb5a06e52e7c25ed9ff431481c395c938c065a3
Geometric norm
0
38
177
40
2023-08-25T19:20:26Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm.
For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator.
== Bulk Norm ==
The ''bulk norm'' of an element $$\mathbf x$$, denoted $$\left\Vert\mathbf x\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf x$$ with itself:
:$$\left\Vert\mathbf x\right\Vert_\unicode{x25CF} = \sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf x}$$ .
An element that has a bulk norm of '''1''' is said to be ''bulk normalized''.
The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$
|}
== Weight Norm ==
The ''weight norm'' of an element $$\mathbf x$$, denoted $$\left\Vert\mathbf x\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf x$$ with itself:
:$$\left\Vert\mathbf x\right\Vert_\unicode{x25CB} = \sqrt{\mathbf x \mathbin{\unicode{x25CB}} \mathbf x}$$ .
(Note that the square root in this case is taken with respect to the geometric antiproduct.)
An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''.
The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$
|}
== Geometric Norm ==
The bulk norm and weight norm are summed to construct the ''geometric norm'' given by
:$$\left\Vert\mathbf x\right\Vert = \left\Vert\mathbf x\right\Vert_\unicode{x25CF} + \left\Vert\mathbf x\right\Vert_\unicode{x25CB} = \sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf x} + \sqrt{\mathbf x \mathbin{\unicode{x25CB}} \mathbf x}$$ .
This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because
:$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ .
Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf x$$ is given by
:$$\widehat{\left\Vert\mathbf x\right\Vert} = \dfrac{\left\Vert\mathbf x\right\Vert}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf x\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf x}}{\sqrt{\mathbf x \mathbin{\unicode{x25CB}} \mathbf x}} + {\large\unicode{x1D7D9}}$$ .
The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$.
Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== See Also ==
* [[Geometric property]]
89dc8add8340153e56a4e6ed85ef0f39558782fd
Geometric constraint
0
40
178
42
2023-08-25T19:22:39Z
Eric Lengyel
1
wikitext
text/x-wiki
An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric property'' if and only if the [[geometric product]] between $$\mathbf x$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf x$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is,
:$$\mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde x} = \mathbf x \mathbin{\unicode{x25CF}} \mathbf x$$
and
:$$\mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = \mathbf x \mathbin{\unicode{x25CB}} \mathbf x$$ .
The set of all elements possessing the geometric property is closed under both the [[geometric product]] and [[geometric antiproduct]].
The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ to possess the geometric property. Points and planes do not have any requirements—they all possess the geometric property.
{| class="wikitable"
! Type !! Definition !! Requirement
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$xy = 0$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$
|}
== See Also ==
* [[Geometric norm]]
e8f9a6133ee2aaa5fd30cbda69c4a33d5c2f6a17
Join and meet
0
11
182
13
2023-08-26T00:20:15Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
:$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description || Illustration
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
| style="padding: 12px;" | [[Image:point_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$.
Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$.
| style="padding: 12px;" | [[Image:line_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect.
Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
| style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$
| style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$.
Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g^* \wedge \mathbf p =\, &-g_xp_w \mathbf e_{41} - g_yp_w \mathbf e_{42} - g_zp_w \mathbf e_{43} \\ +\, &(g_yp_z - g_zp_y)\,\mathbf e_{23} + (g_zp_x - g_xp_z)\,\mathbf e_{31} + (g_xp_y - g_yp_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line perpendicular to plane $$\mathbf g$$ passing through point $$\mathbf p$$.
| style="padding: 12px;" | [[Image:plane_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l^* \wedge \mathbf p =\, &-l_{vx} p_w \mathbf e_{423} - l_{vy} p_w \mathbf e_{431} - l_{vz} p_w \mathbf e_{412} \\ +\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane perpendicular to line $$\boldsymbol l$$ containing point $$\mathbf p$$.
| style="padding: 12px;" | [[Image:line_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g^* \wedge \boldsymbol l =\, &(g_zl_{vy} - g_yl_{vz})\,\mathbf e_{423} + (g_xl_{vz} - g_zl_{vx})\,\mathbf e_{431} + (g_yl_{vx} - g_xl_{vy})\,\mathbf e_{412} \\ -\, &(g_xl_{mx} + g_yl_{my} + g_zl_{mz})\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane perpendicular to plane $$\mathbf g$$ containing line $$\boldsymbol l$$.
Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:plane_weight_join_line.svg|250px]]
|}
== See Also ==
* [[Exterior products]]
* [[Commutators]]
b7833c671b95eff51cc83b28b035606e52cb72a1
183
182
2023-08-26T00:20:26Z
Eric Lengyel
1
/* See Also */
wikitext
text/x-wiki
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
:$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description || Illustration
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
| style="padding: 12px;" | [[Image:point_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$.
Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$.
| style="padding: 12px;" | [[Image:line_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect.
Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
| style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$
| style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$.
Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g^* \wedge \mathbf p =\, &-g_xp_w \mathbf e_{41} - g_yp_w \mathbf e_{42} - g_zp_w \mathbf e_{43} \\ +\, &(g_yp_z - g_zp_y)\,\mathbf e_{23} + (g_zp_x - g_xp_z)\,\mathbf e_{31} + (g_xp_y - g_yp_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line perpendicular to plane $$\mathbf g$$ passing through point $$\mathbf p$$.
| style="padding: 12px;" | [[Image:plane_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l^* \wedge \mathbf p =\, &-l_{vx} p_w \mathbf e_{423} - l_{vy} p_w \mathbf e_{431} - l_{vz} p_w \mathbf e_{412} \\ +\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane perpendicular to line $$\boldsymbol l$$ containing point $$\mathbf p$$.
| style="padding: 12px;" | [[Image:line_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g^* \wedge \boldsymbol l =\, &(g_zl_{vy} - g_yl_{vz})\,\mathbf e_{423} + (g_xl_{vz} - g_zl_{vx})\,\mathbf e_{431} + (g_yl_{vx} - g_xl_{vy})\,\mathbf e_{412} \\ -\, &(g_xl_{mx} + g_yl_{my} + g_zl_{mz})\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane perpendicular to plane $$\mathbf g$$ containing line $$\boldsymbol l$$.
Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:plane_weight_join_line.svg|250px]]
|}
== See Also ==
* [[Exterior products]]
be12a111b2b791acc9c1b2a624809c9015fb921a
Transformation groups
0
25
184
27
2023-08-26T00:25:01Z
Eric Lengyel
1
wikitext
text/x-wiki
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
or by a [[flector]] $$\mathbf F$$ of the form
:$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ .
Under the [[geometric antiproduct]] $$\unicode{x27C7}$$, arbitrary products of these operators form the Euclidean group E(3) with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$.
Symmetrically, every reciprocal Euclidean isometry of 3D space can be represented by a [[reciprocal motor]] $$\mathbf Q$$ of the form
:$$\mathbf Q = Q_{vx} \mathbf e_{23} + Q_{vy} \mathbf e_{31} + Q_{vz} \mathbf e_{12} - Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{41} + Q_{my} \mathbf e_{42} + Q_{mz} \mathbf e_{43} - Q_{mw} \mathbf 1$$
or by a [[reciprocal flector]] $$\mathbf F$$ of the form
:$$\mathbf F = F_{px} \mathbf e_{423} + F_{py} \mathbf e_{431} + F_{pz} \mathbf e_{412} + F_{pw} \mathbf e_{321} - F_{gx} \mathbf e_1 - F_{gy} \mathbf e_2 - F_{gz} \mathbf e_3 - F_{gw} \mathbf e_4$$ .
Under the [[geometric product]] $$\unicode{x27D1}$$, arbitrary products of these operators form the reciprocal Euclidean group RE(3) with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde F}$$.
The [[geometric product]] corresponds to transform composition in the group RE(3), and the [[geometric antiproduct]] corresponds to transform composition in the group E(3). [[Reflections]] across planes are represented by [[antivectors]] (having [[antigrade]] one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, [[reciprocal reflections]] across points are represented by [[vectors]] (having [[grade]] one), and they join at higher-dimensional invariants under the geometric product. A sandwich product $$\mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ transforms the space of $$\mathbf x$$ with an element of RE(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of E(3). Symmetrically, a sandwich product $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ transforms the space of $$\mathbf x$$ with an element of E(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of RE(3).
The groups E(''n'') and RE(''n'') are isomorphic, and they each contain the orthogonal group O(''n'') as a common subgroup. The [[complement]] operation provides a two-way mapping between transforms associated with members of E(''n'') and RE(''n''). The groups E(''n'') and RE(''n'') have a number of subgroups, and the hierarchical relationships among them are shown in the figure below. In particular, the Euclidean group E(''n'') contains the special Euclidean subgroup SE(''n'') consisting of all combinations of ordinary [[rotations]] and [[translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even antigrade. Correspondingly, the reciprocal Euclidean group RE(''n'') contains the reciprocal special Euclidean subgroup RSE(''n'') consisting of all combinations of [[reciprocal rotations]] and [[reciprocal translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even grade. The subgroups SE(''n'') and RSE(''n'') further contain translation subgroups T(''n'') and RT(''n''), respectively.
[[Image:Groups.svg|800px]]
Transforms about invariants containing the origin are the same in both E(''n'') and RE(''n''), and they constitute the common subgroup O(''n''). Every member of O(''n'') has a representation that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, conventional [[quaternions]] $$\mathbf q$$ have two representations, one that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ and another that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$.
In terms of matrix multiplication, a general element of the group E(''n'') transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form
:$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf t_{n \times 1} \\ \mathbf 0_{1 \times n} & 1 \end{bmatrix}$$ ,
where the $$n \times n$$ submatrix $$\mathbf m$$ is orthogonal. A general element of the corresponding group RE(''n'') transforms points with matrices of the form
:$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf 0_{n \times 1} \\ \mathbf t_{1 \times n} & 1 \end{bmatrix}$$ .
In the special subgroups SE(''n'') and RSE(''n''), the submatrix $$\mathbf m$$ has a determinant of +1. In the translation subgroups T(''n'') and RT(''n''), $$\mathbf m$$ is the identity matrix. Finally, when $$\mathbf t = \mathbf 0$$, the two matrices above have the same form and belong to O(''n'').
The isomorphic mapping between E(''n'') and RE(''n'') is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of E(''n''), then the corresponding element of RE(''n'') is given by $$(\mathbf M^{-1})^{\text T}$$. Of course, this operation is an involution, and the mapping works both ways.
== See Also ==
* [[Motor]]
* [[Flector]]
1ced4236707147dc9abc64d979a2187832710d8a
Complement rotation
0
37
185
39
2023-08-26T00:25:42Z
Eric Lengyel
1
Eric Lengyel moved page [[Dual rotation]] to [[Reciprocal rotation]] without leaving a redirect
wikitext
text/x-wiki
A ''dual rotation'' is a proper isometry of dual Euclidean space.
For a [[bulk normalized]] [[line]] $$\boldsymbol l$$, the specific kind of [[dual motor]]
:$$\mathbf R = \boldsymbol l\sin\phi + \mathbf 1\cos\phi$$ ,
performs a dual rotation of an object $$\mathbf x$$ by twice the angle $$\phi$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde R}$$. The line $$\boldsymbol l$$ and its bulk [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ passes through the origin and runs perpendicular to the line's moment bivector.
Under a dual rotation, a point $$\mathbf p$$ follows an orbit of constant eccentricity as the angle $$\phi$$ ranges from 0 to $$\pi$$. The line $$\boldsymbol l$$ is the directrix for the orbit, and the intersection of $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ with the plane $$\boldsymbol l \wedge \mathbf p$$ is the focus. The eccentricity is given by the distance from $$\mathbf p$$ to the focus divided by the distance from $$\mathbf p$$ to the directrix.
== Example ==
The left image below shows the flow field in the ''x''-''y'' plane for the rotation $$\mathbf R = (\mathbf e_{43} - \frac{1}{2} \mathbf e_{31})\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$. The axis of rotation runs along the ''z'' direction through the yellow point. The right image shows the flow field in the ''x''-''y'' plane for the dual rotation $$\mathbf R = (\frac{1}{2} \mathbf e_{42} - \mathbf e_{12})\sin\phi + \mathbf 1\cos\phi$$. Points follow orbits of constant eccentricity with respect to a focus at the origin and a directrix given by the yellow line.
[[Image:Rotation.svg|480px]]
[[Image:DualRotation.svg|480px]]
== Calculation ==
The exact dual rotation calculations for points, lines, and planes transformed by the operator $$\mathbf R = R_{vx}\mathbf e_{41} + R_{vy}\mathbf e_{42} + R_{vz}\mathbf e_{43} + R_{mx}\mathbf e_{23} + R_{my}\mathbf e_{31} + R_{mz}\mathbf e_{12} + R_{mw}\mathbf 1$$ are shown in the following table. Here, it is assumed that $$\mathbf R$$ is [[bulk normalized]] so that $$R_{mx}^2 + R_{my}^2 + R_{mz}^2 + R_{mw}^2 = 1$$ and that $$\mathbf R$$ properly satisfies the [[geometric property]] so that $$R_{vx}R_{mx} + R_{vy}R_{my} + R_{vz}R_{mz} = 0$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)p_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})p_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})p_z\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)p_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})p_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})p_x\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)p_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})p_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})p_y\right]\mathbf e_3 \\ +\, &\left[2(R_{my}R_{vz} - R_{mz}R_{vy} + R_{mw}R_{vx})p_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} + R_{mw}R_{vy})p_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} + R_{mw}R_{vz})p_z + p_w\right]\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[-4(R_{my}R_{vy} + R_{mz}R_{vz})l_{mx} + 2(R_{my}R_{vx} + R_{mx}R_{vy} + R_{mw}R_{vz})l_{my} + 2(R_{mz}R_{vx} + R_{mx}R_{vz} - R_{mw}R_{vy})l_{mz} + (1 - 2R_{my}^2 - 2R_{mz}^2)l_{vx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{vy} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[-4(R_{mz}R_{vz} + R_{mx}R_{vx})l_{my} + 2(R_{mz}R_{vy} + R_{my}R_{vz} + R_{mw}R_{vx})l_{mz} + 2(R_{mx}R_{vy} + R_{my}R_{vx} - R_{mw}R_{vz})l_{mx} + (1 - 2R_{mz}^2 - 2R_{mx}^2)l_{vy} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{vz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[-4(R_{mx}R_{vx} + R_{my}R_{vy})l_{mz} + 2(R_{mx}R_{vz} + R_{mz}R_{vx} + R_{mw}R_{vy})l_{mx} + 2(R_{my}R_{vz} + R_{mz}R_{vy} - R_{mw}R_{vx})l_{my} + (1 - 2R_{mx}^2 - 2R_{my}^2)l_{vz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{vx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)l_{mx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{my} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)l_{my} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{mz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)l_{mz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{mx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf g \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)g_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})g_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})g_z + 2(R_{my}R_{vz} - R_{mz}R_{vy} - R_{mw}R_{vx})g_w\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)g_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})g_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})g_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} - R_{mw}R_{vy})g_w\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)g_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})g_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})g_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} - R_{mw}R_{vz})g_w\right]\mathbf e_{412} \\ +\, &g_w\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Rotation]]
* [[Dual translation]]
* [[Dual reflection]]
694f05e6b5d39b3a68fe24a9ba47ed50b9cc15b3
Complement translation
0
34
186
36
2023-08-26T00:26:01Z
Eric Lengyel
1
Eric Lengyel moved page [[Dual translation]] to [[Reciprocal translation]] without leaving a redirect
wikitext
text/x-wiki
__NOTOC__
A ''dual translation'' is a proper isometry of dual Euclidean space.
The specific kind of [[dual motor]]
:$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$
performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by
:$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ .
== Example ==
The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the dual translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative.
[[Image:Translation.svg|480px]]
[[Image:DualTranslation.svg|480px]]
== Calculation ==
The exact dual translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Dual Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$
|}
== Dual Translation to Horizon ==
A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is dual translated to the horizon by the operator
:$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{32} + \mathbf 1$$ .
== See Also ==
* [[Translation]]
* [[Dual rotation]]
* [[Dual reflection]]
f5dbfdf842b1ba98ed2fbe6ab60ccecb2f63c7be
Complement translation
0
34
187
186
2023-08-26T00:27:16Z
Eric Lengyel
1
wikitext
text/x-wiki
__NOTOC__
A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space.
The specific kind of [[reciprocal motor]]
:$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$
performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by
:$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ .
== Example ==
The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative.
[[Image:Translation.svg|480px]]
[[Image:DualTranslation.svg|480px]]
== Calculation ==
The exact reciprocal translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Reciprocal Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$
|}
== Reciprocal Translation to Horizon ==
A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator
:$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{32} + \mathbf 1$$ .
== See Also ==
* [[Translation]]
* [[Reciprocal rotation]]
* [[Reciprocal reflection]]
85ddb3eb73fefa9ecc252e7232aacbd483c6f24b
223
187
2023-10-01T00:31:45Z
Eric Lengyel
1
/* Reciprocal Translation to Horizon */
wikitext
text/x-wiki
__NOTOC__
A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space.
The specific kind of [[reciprocal motor]]
:$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$
performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by
:$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ .
== Example ==
The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative.
[[Image:Translation.svg|480px]]
[[Image:DualTranslation.svg|480px]]
== Calculation ==
The exact reciprocal translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Reciprocal Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$
|}
== Reciprocal Translation to Horizon ==
A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator
:$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{43} + \mathbf 1$$ .
== See Also ==
* [[Translation]]
* [[Reciprocal rotation]]
* [[Reciprocal reflection]]
84acb84893568b0e2552daae39f7b6271c18ff73
Complement translations
0
143
188
2023-08-26T00:27:36Z
Eric Lengyel
1
Redirected page to [[Reciprocal translation]]
wikitext
text/x-wiki
#REDIRECT [[Reciprocal translation]]
26ff3a9286421e038f8ef31e2b32072e1d3424b1
Complement rotations
0
144
189
2023-08-26T00:27:54Z
Eric Lengyel
1
Redirected page to [[Reciprocal rotation]]
wikitext
text/x-wiki
#REDIRECT [[Reciprocal rotation]]
e875e8754b8a92e72dbe62f58925f2ba56274d3b
Complement rotation
0
37
190
185
2023-08-26T00:28:28Z
Eric Lengyel
1
wikitext
text/x-wiki
A ''reciprocal rotation'' is a proper isometry of reciprocal Euclidean space.
For a [[bulk normalized]] [[line]] $$\boldsymbol l$$, the specific kind of [[reciprocal motor]]
:$$\mathbf R = \boldsymbol l\sin\phi + \mathbf 1\cos\phi$$ ,
performs a reciprocal rotation of an object $$\mathbf x$$ by twice the angle $$\phi$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde R}$$. The line $$\boldsymbol l$$ and its bulk [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ passes through the origin and runs perpendicular to the line's moment bivector.
Under a reciprocal rotation, a point $$\mathbf p$$ follows an orbit of constant eccentricity as the angle $$\phi$$ ranges from 0 to $$\pi$$. The line $$\boldsymbol l$$ is the directrix for the orbit, and the intersection of $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ with the plane $$\boldsymbol l \wedge \mathbf p$$ is the focus. The eccentricity is given by the distance from $$\mathbf p$$ to the focus divided by the distance from $$\mathbf p$$ to the directrix.
== Example ==
The left image below shows the flow field in the ''x''-''y'' plane for the rotation $$\mathbf R = (\mathbf e_{43} - \frac{1}{2} \mathbf e_{31})\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$. The axis of rotation runs along the ''z'' direction through the yellow point. The right image shows the flow field in the ''x''-''y'' plane for the reciprocal rotation $$\mathbf R = (\frac{1}{2} \mathbf e_{42} - \mathbf e_{12})\sin\phi + \mathbf 1\cos\phi$$. Points follow orbits of constant eccentricity with respect to a focus at the origin and a directrix given by the yellow line.
[[Image:Rotation.svg|480px]]
[[Image:DualRotation.svg|480px]]
== Calculation ==
The exact reciprocal rotation calculations for points, lines, and planes transformed by the operator $$\mathbf R = R_{vx}\mathbf e_{41} + R_{vy}\mathbf e_{42} + R_{vz}\mathbf e_{43} + R_{mx}\mathbf e_{23} + R_{my}\mathbf e_{31} + R_{mz}\mathbf e_{12} + R_{mw}\mathbf 1$$ are shown in the following table. Here, it is assumed that $$\mathbf R$$ is [[bulk normalized]] so that $$R_{mx}^2 + R_{my}^2 + R_{mz}^2 + R_{mw}^2 = 1$$ and that $$\mathbf R$$ properly satisfies the [[geometric property]] so that $$R_{vx}R_{mx} + R_{vy}R_{my} + R_{vz}R_{mz} = 0$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)p_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})p_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})p_z\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)p_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})p_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})p_x\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)p_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})p_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})p_y\right]\mathbf e_3 \\ +\, &\left[2(R_{my}R_{vz} - R_{mz}R_{vy} + R_{mw}R_{vx})p_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} + R_{mw}R_{vy})p_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} + R_{mw}R_{vz})p_z + p_w\right]\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[-4(R_{my}R_{vy} + R_{mz}R_{vz})l_{mx} + 2(R_{my}R_{vx} + R_{mx}R_{vy} + R_{mw}R_{vz})l_{my} + 2(R_{mz}R_{vx} + R_{mx}R_{vz} - R_{mw}R_{vy})l_{mz} + (1 - 2R_{my}^2 - 2R_{mz}^2)l_{vx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{vy} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[-4(R_{mz}R_{vz} + R_{mx}R_{vx})l_{my} + 2(R_{mz}R_{vy} + R_{my}R_{vz} + R_{mw}R_{vx})l_{mz} + 2(R_{mx}R_{vy} + R_{my}R_{vx} - R_{mw}R_{vz})l_{mx} + (1 - 2R_{mz}^2 - 2R_{mx}^2)l_{vy} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{vz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[-4(R_{mx}R_{vx} + R_{my}R_{vy})l_{mz} + 2(R_{mx}R_{vz} + R_{mz}R_{vx} + R_{mw}R_{vy})l_{mx} + 2(R_{my}R_{vz} + R_{mz}R_{vy} - R_{mw}R_{vx})l_{my} + (1 - 2R_{mx}^2 - 2R_{my}^2)l_{vz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{vx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)l_{mx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{my} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)l_{my} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{mz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)l_{mz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{mx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf g \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)g_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})g_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})g_z + 2(R_{my}R_{vz} - R_{mz}R_{vy} - R_{mw}R_{vx})g_w\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)g_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})g_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})g_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} - R_{mw}R_{vy})g_w\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)g_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})g_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})g_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} - R_{mw}R_{vz})g_w\right]\mathbf e_{412} \\ +\, &g_w\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Rotation]]
* [[Reciprocal translation]]
* [[Reciprocal reflection]]
6f7d97f24a97dae954cd95a852435cfd2caa22bc
File:Groups.svg
6
26
191
28
2023-08-26T00:31:16Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Groups.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Transformation groups
0
25
192
184
2023-08-26T00:34:35Z
Eric Lengyel
1
wikitext
text/x-wiki
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
or by a [[flector]] $$\mathbf F$$ of the form
:$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ .
Under the [[geometric antiproduct]] $$\unicode{x27C7}$$, arbitrary products of these operators form the Euclidean group E(3) with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$.
Symmetrically, every reciprocal Euclidean isometry of 3D space can be represented by a [[reciprocal motor]] $$\mathbf Q$$ of the form
:$$\mathbf Q = Q_{vx} \mathbf e_{23} + Q_{vy} \mathbf e_{31} + Q_{vz} \mathbf e_{12} - Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{41} + Q_{my} \mathbf e_{42} + Q_{mz} \mathbf e_{43} - Q_{mw} \mathbf 1$$
or by a [[reciprocal flector]] $$\mathbf F$$ of the form
:$$\mathbf F = F_{px} \mathbf e_{423} + F_{py} \mathbf e_{431} + F_{pz} \mathbf e_{412} + F_{pw} \mathbf e_{321} - F_{gx} \mathbf e_1 - F_{gy} \mathbf e_2 - F_{gz} \mathbf e_3 - F_{gw} \mathbf e_4$$ .
Under the [[geometric product]] $$\unicode{x27D1}$$, arbitrary products of these operators form the reciprocal Euclidean group RE(3) with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde F}$$.
The [[geometric product]] corresponds to transform composition in the group RE(3), and the [[geometric antiproduct]] corresponds to transform composition in the group E(3). [[Reflections]] across planes are represented by [[antivectors]] (having [[antigrade]] one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, [[reciprocal reflections]] across points are represented by [[vectors]] (having [[grade]] one), and they join at higher-dimensional invariants under the geometric product. A sandwich product $$\mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ transforms the space of $$\mathbf x$$ with an element of RE(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of E(3). Symmetrically, a sandwich product $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ transforms the space of $$\mathbf x$$ with an element of E(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of RE(3).
The groups E(''n'') and RE(''n'') are isomorphic, and they each contain the orthogonal group O(''n'') as a common subgroup. The [[complement]] operation provides a two-way mapping between transforms associated with members of E(''n'') and RE(''n''). The groups E(''n'') and RE(''n'') have a number of subgroups, and the hierarchical relationships among them are shown in the figure below. In particular, the Euclidean group E(''n'') contains the special Euclidean subgroup SE(''n'') consisting of all combinations of ordinary [[rotations]] and [[translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even antigrade. Correspondingly, the reciprocal Euclidean group RE(''n'') contains the reciprocal special Euclidean subgroup RSE(''n'') consisting of all combinations of [[reciprocal rotations]] and [[reciprocal translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even grade. The subgroups SE(''n'') and RSE(''n'') further contain translation subgroups T(''n'') and RT(''n''), respectively.
[[Image:Groups.svg|800px]]
Transforms about invariants containing the origin are the same in both E(''n'') and RE(''n''), and they constitute the common subgroup O(''n''). Every member of O(''n'') has a representation that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, conventional [[quaternions]] $$\mathbf q$$ have two representations, one that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ and another that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$.
In terms of matrix multiplication, a general element of the group E(''n'') transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form
:$$\begin{bmatrix} \mathbf M_{n \times n} & \boldsymbol \tau_{n \times 1} \\ \mathbf 0_{1 \times n} & 1 \end{bmatrix}$$ ,
where the $$n \times n$$ submatrix $$\mathbf M$$ is orthogonal. A general element of the corresponding group RE(''n'') transforms points with matrices of the form
:$$\begin{bmatrix} \mathbf M_{n \times n} & \mathbf 0_{n \times 1} \\ \boldsymbol \tau_{1 \times n} & 1 \end{bmatrix}$$ .
In the special subgroups SE(''n'') and RSE(''n''), the submatrix $$\mathbf M$$ has a determinant of +1. In the translation subgroups T(''n'') and RT(''n''), $$\mathbf M$$ is the identity matrix. Finally, when $$\boldsymbol \tau = \mathbf 0$$, the two matrices above have the same form and belong to O(''n'').
The isomorphic mapping between E(''n'') and RE(''n'') is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of E(''n''), then the corresponding element of RE(''n'') is given by $$(\mathbf M^{-1})^{\text T}$$. Of course, this operation is an involution, and the mapping works both ways.
== See Also ==
* [[Motor]]
* [[Flector]]
861473aa8d5684ccd923798e760dcf44e9203eb0
File:GeometricProduct.svg
6
74
193
76
2023-08-26T00:40:11Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:GeometricProduct.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:GeometricAntiproduct.svg
6
75
194
77
2023-08-26T00:40:29Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:GeometricAntiproduct.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Geometric products
0
76
195
78
2023-08-26T00:41:01Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct.
== Geometric Product ==
The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$".
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to −'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$
:$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
Cells colored yellow correspond to the contribution from the [[wedge product]].
[[Image:GeometricProduct.svg|720px]]
== Geometric Antiproduct ==
The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$".
The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows.
:$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$
:$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$.
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$.
Cells colored yellow correspond to the contribution from the [[antiwedge product]].
[[Image:GeometricAntiproduct.svg|720px]]
== De Morgan Laws ==
There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$
== See Also ==
* [[Wedge products]]
* [[Dot products]]
* [[Complements]]
88400496df13c003418bb4fae41af7daf6eee048
File:GeometricProduct201.svg
6
22
196
24
2023-08-26T00:43:02Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:GeometricProduct201.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:GeometricAntiproduct201.svg
6
23
197
25
2023-08-26T00:43:12Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:GeometricAntiproduct201.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Geometric norms
0
145
198
2023-08-26T00:43:45Z
Eric Lengyel
1
Redirected page to [[Geometric norm]]
wikitext
text/x-wiki
#REDIRECT [[Geometric norm]]
5044e2e82ada4d19757a27fa0864a5c86bdf1c61
Rigid Geometric Algebra for 2D Space
0
19
199
21
2023-08-26T00:46:13Z
Eric Lengyel
1
/* Join and Meet */
wikitext
text/x-wiki
== Introduction ==
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.
__TOC__
<br clear="right" />
== Unary Operations ==
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.
[[Image:Unary201.svg|480px]]
== Geometric Products ==
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to −1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
[[Image:GeometricProduct201.svg|360px]]
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.
[[Image:GeometricAntiproduct201.svg|360px]]
== Points ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
== Lines ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form
:$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ .
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$l_x^2 + l_y^2 = 1$$.
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$l_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.
== Bulk and Weight ==
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_x \mathbf e_{23} + l_y \mathbf e_{31}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$
|}
== Unitization ==
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$p_z^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$l_x^2 + l_y^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$
|}
== Geometric Norm ==
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = |l_z|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$
|}
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_x^2 + l_y^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$
|}
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \dfrac{|l_z|}{\sqrt{l_x^2 + l_y^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$.
Half the distance that the origin is moved by the [[flector]] $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== Join and Meet ==
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The points and lines appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$
:$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
:$$\mathbf k = k_x \mathbf e_{23} + k_y \mathbf e_{31} + k_z \mathbf e_{12}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
|-
| style="padding: 12px;" | $$\boldsymbol l \vee \mathbf k = (l_yk_z - k_yl_z)\mathbf e_1 + (l_zk_x - l_xk_z)\mathbf e_2 + (l_xk_y - l_yk_x)\mathbf e_3$$
| style="padding: 12px;" | Point where lines $$\boldsymbol l$$ and $$\mathbf k$$ intersect.
Point at infinity if $$\boldsymbol l$$ and $$\mathbf k$$ are parallel.
|-
| style="padding: 12px;" | $$\boldsymbol l^* \wedge \mathbf p = -l_yp_z\mathbf e_{23} + l_xp_z\mathbf e_{31} + (l_yp_x - l_xp_y)\mathbf e_{12}$$
| style="padding: 12px;" | Line perpendicular to line $$\boldsymbol l$$ passing through point $$\mathbf p$$.
|}
== Projections ==
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.
{| class="wikitable"
! Formula !! Description
|-
| style="padding: 12px;" | $$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p\right) \vee \boldsymbol l = (l_x^2 + l_y^2)\mathbf p - (l_xp_x + l_yp_y + l_zp_z)(l_x \mathbf e_1 + l_y \mathbf e_2)$$
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.
|-
| style="padding: 12px;" | $$\left(\underline{\mathbf p_\smash{\unicode{x25CB}}} \vee \boldsymbol l\right) \wedge \mathbf p = l_xp_z^2 \mathbf e_{23} + l_yp_z^2 \mathbf e_{31} - (l_xp_x + l_yp_y)p_z \mathbf e_{12}$$
| style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.
|}
Projecting the origin onto a line gives us the following formula for the point on a line $$\boldsymbol l$$ closest to the origin.
:$$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf e_3\right) \vee \boldsymbol l = -l_xl_z \mathbf e_1 - l_yl_z \mathbf e_2 + (l_x^2 + l_y^2)\mathbf e_3$$
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.
:$$\left(\underline{\mathbf p_\smash{\unicode{x25CF}}} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$
== Motors ==
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .
== Flectors ==
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form
:$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ .
A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line.
98af02e667e41c7a8e44b12485849576f8bcc8f0
202
199
2023-08-26T01:00:09Z
Eric Lengyel
1
/* Projections */
wikitext
text/x-wiki
== Introduction ==
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.
__TOC__
<br clear="right" />
== Unary Operations ==
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.
[[Image:Unary201.svg|480px]]
== Geometric Products ==
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to −1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
[[Image:GeometricProduct201.svg|360px]]
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.
[[Image:GeometricAntiproduct201.svg|360px]]
== Points ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
== Lines ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form
:$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ .
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$l_x^2 + l_y^2 = 1$$.
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$l_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.
== Bulk and Weight ==
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_x \mathbf e_{23} + l_y \mathbf e_{31}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$
|}
== Unitization ==
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$p_z^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$l_x^2 + l_y^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$
|}
== Geometric Norm ==
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = |l_z|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$
|}
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_x^2 + l_y^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$
|}
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \dfrac{|l_z|}{\sqrt{l_x^2 + l_y^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$.
Half the distance that the origin is moved by the [[flector]] $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== Join and Meet ==
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The points and lines appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$
:$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
:$$\mathbf k = k_x \mathbf e_{23} + k_y \mathbf e_{31} + k_z \mathbf e_{12}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
|-
| style="padding: 12px;" | $$\boldsymbol l \vee \mathbf k = (l_yk_z - k_yl_z)\mathbf e_1 + (l_zk_x - l_xk_z)\mathbf e_2 + (l_xk_y - l_yk_x)\mathbf e_3$$
| style="padding: 12px;" | Point where lines $$\boldsymbol l$$ and $$\mathbf k$$ intersect.
Point at infinity if $$\boldsymbol l$$ and $$\mathbf k$$ are parallel.
|-
| style="padding: 12px;" | $$\boldsymbol l^* \wedge \mathbf p = -l_yp_z\mathbf e_{23} + l_xp_z\mathbf e_{31} + (l_yp_x - l_xp_y)\mathbf e_{12}$$
| style="padding: 12px;" | Line perpendicular to line $$\boldsymbol l$$ passing through point $$\mathbf p$$.
|}
== Projections ==
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.
{| class="wikitable"
! Formula !! Description
|-
| style="padding: 12px;" | $$\left(\boldsymbol l^* \wedge \mathbf p\right) \vee \boldsymbol l = (l_x^2 + l_y^2)\mathbf p - (l_xp_x + l_yp_y + l_zp_z)(l_x \mathbf e_1 + l_y \mathbf e_2)$$
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.
|-
| style="padding: 12px;" | $$\left(\mathbf p^* \vee \boldsymbol l\right) \wedge \mathbf p = l_xp_z^2 \mathbf e_{23} + l_yp_z^2 \mathbf e_{31} - (l_xp_x + l_yp_y)p_z \mathbf e_{12}$$
| style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.
|}
Projecting the origin onto a line gives us the following formula for the point on a line $$\boldsymbol l$$ closest to the origin.
:$$\left(\boldsymbol l^* \wedge \mathbf e_3\right) \vee \boldsymbol l = -l_xl_z \mathbf e_1 - l_yl_z \mathbf e_2 + (l_x^2 + l_y^2)\mathbf e_3$$
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.
:$$\left(\mathbf p^\star \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$
== Motors ==
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .
== Flectors ==
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form
:$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ .
A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line.
0386484b5b447ac073bbe6dcf58ec87acc6090ef
203
202
2023-08-26T01:06:24Z
Eric Lengyel
1
wikitext
text/x-wiki
== Introduction ==
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.
__TOC__
<br clear="right" />
== Unary Operations ==
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.
[[Image:Unary201.svg|480px]]
== Geometric Products ==
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to −1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
[[Image:GeometricProduct201.svg|360px]]
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.
[[Image:GeometricAntiproduct201.svg|360px]]
== Points ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
== Lines ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ .
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$.
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.
== Bulk and Weight ==
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$
|}
== Unitization ==
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$p_z^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$
|}
== Geometric Norm ==
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$
|}
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$
|}
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== Join and Meet ==
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The points and lines appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
:$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
|-
| style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$
| style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect.
Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
|-
| style="padding: 12px;" | $$\mathbf g^* \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$
| style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$.
|}
== Projections ==
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.
{| class="wikitable"
! Formula !! Description
|-
| style="padding: 12px;" | $$\left(\mathbf g^* \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$.
|-
| style="padding: 12px;" | $$\left(\mathbf p^* \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$
| style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$.
|}
Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin.
:$$\left(\mathbf g^* \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.
:$$\left(\mathbf p^\star \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$
== Motors ==
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .
== Flectors ==
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form
:$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ .
A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line.
64910ac67f2a4e7fda715e7a8d9e733adffb12bb
204
203
2023-08-26T01:13:11Z
Eric Lengyel
1
/* Projections */
wikitext
text/x-wiki
== Introduction ==
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.
__TOC__
<br clear="right" />
== Unary Operations ==
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.
[[Image:Unary201.svg|480px]]
== Geometric Products ==
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to −1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
[[Image:GeometricProduct201.svg|360px]]
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.
[[Image:GeometricAntiproduct201.svg|360px]]
== Points ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
== Lines ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ .
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$.
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.
== Bulk and Weight ==
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$
|}
== Unitization ==
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$p_z^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$
|}
== Geometric Norm ==
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$
|}
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$
|}
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== Join and Meet ==
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The points and lines appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
:$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
|-
| style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$
| style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect.
Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
|-
| style="padding: 12px;" | $$\mathbf g^* \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$
| style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$.
|}
== Projections ==
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.
{| class="wikitable"
! Formula !! Description
|-
| style="padding: 12px;" | $$\left(\mathbf g^* \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$.
|-
| style="padding: 12px;" | $$\left(\mathbf p^* \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$
| style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$.
|}
Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin.
:$$\left(\mathbf g^\unicode{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.
:$$\left(\mathbf p^\unicode{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$
== Motors ==
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .
== Flectors ==
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form
:$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ .
A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line.
b721c5292d58623b2f17e17e286f3662abbbbe1f
205
204
2023-08-26T08:33:36Z
Eric Lengyel
1
/* Projections */
wikitext
text/x-wiki
== Introduction ==
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.
__TOC__
<br clear="right" />
== Unary Operations ==
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.
[[Image:Unary201.svg|480px]]
== Geometric Products ==
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to −1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
[[Image:GeometricProduct201.svg|360px]]
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.
[[Image:GeometricAntiproduct201.svg|360px]]
== Points ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
== Lines ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ .
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$.
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.
== Bulk and Weight ==
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$
|}
== Unitization ==
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$p_z^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$
|}
== Geometric Norm ==
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$
|}
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$
|}
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== Join and Meet ==
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The points and lines appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
:$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
|-
| style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$
| style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect.
Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
|-
| style="padding: 12px;" | $$\mathbf g^* \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$
| style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$.
|}
== Projections ==
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.
{| class="wikitable"
! Formula !! Description
|-
| style="padding: 12px;" | $$\left(\mathbf g^* \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$.
|-
| style="padding: 12px;" | $$\left(\mathbf p^* \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$
| style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$.
|}
Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin.
:$$\left(\mathbf g^\unicode[seguisym]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.
:$$\left(\mathbf p^\unicode[seguisym]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$
== Motors ==
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .
== Flectors ==
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form
:$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ .
A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line.
2b3cea83c27351be3009d5107a3f3cceceaba0d4
206
205
2023-08-26T08:44:12Z
Eric Lengyel
1
/* Projections */
wikitext
text/x-wiki
== Introduction ==
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.
__TOC__
<br clear="right" />
== Unary Operations ==
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.
[[Image:Unary201.svg|480px]]
== Geometric Products ==
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to −1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
[[Image:GeometricProduct201.svg|360px]]
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.
[[Image:GeometricAntiproduct201.svg|360px]]
== Points ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
== Lines ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ .
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$.
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.
== Bulk and Weight ==
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$
|}
== Unitization ==
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$p_z^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$
|}
== Geometric Norm ==
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$
|}
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$
|}
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== Join and Meet ==
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The points and lines appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
:$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
|-
| style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$
| style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect.
Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
|-
| style="padding: 12px;" | $$\mathbf g^* \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$
| style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$.
|}
== Projections ==
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.
{| class="wikitable"
! Formula !! Description
|-
| style="padding: 12px;" | $$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$.
|-
| style="padding: 12px;" | $$\left(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$
| style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$.
|}
Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin.
:$$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.
:$$\left(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$
== Motors ==
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .
== Flectors ==
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form
:$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ .
A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line.
f8121108e0a947b1d814602c15e8e08786897394
207
206
2023-08-26T08:44:26Z
Eric Lengyel
1
/* Join and Meet */
wikitext
text/x-wiki
== Introduction ==
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.
__TOC__
<br clear="right" />
== Unary Operations ==
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.
[[Image:Unary201.svg|480px]]
== Geometric Products ==
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to −1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
[[Image:GeometricProduct201.svg|360px]]
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.
[[Image:GeometricAntiproduct201.svg|360px]]
== Points ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
== Lines ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ .
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$.
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.
== Bulk and Weight ==
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$
|}
== Unitization ==
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$p_z^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$
|}
== Geometric Norm ==
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$
|}
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$
|}
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== Join and Meet ==
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The points and lines appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
:$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
|-
| style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$
| style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect.
Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
|-
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$
| style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$.
|}
== Projections ==
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.
{| class="wikitable"
! Formula !! Description
|-
| style="padding: 12px;" | $$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$.
|-
| style="padding: 12px;" | $$\left(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$
| style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$.
|}
Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin.
:$$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.
:$$\left(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$
== Motors ==
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .
== Flectors ==
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form
:$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ .
A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line.
9c6c17bed39ec5d14cff8f79fdd2a28a143a517a
Bulk norms
0
146
200
2023-08-26T00:47:58Z
Eric Lengyel
1
Redirected page to [[Geometric norm]]
wikitext
text/x-wiki
#REDIRECT [[Geometric norm]]
5044e2e82ada4d19757a27fa0864a5c86bdf1c61
Weight norms
0
147
201
2023-08-26T00:48:09Z
Eric Lengyel
1
Redirected page to [[Geometric norm]]
wikitext
text/x-wiki
#REDIRECT [[Geometric norm]]
5044e2e82ada4d19757a27fa0864a5c86bdf1c61
Unitization
0
39
208
41
2023-08-26T20:18:34Z
Eric Lengyel
1
wikitext
text/x-wiki
''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''.
An element $$\mathbf x$$ is unitized by calculating
:$$\mathbf{\hat x} = \dfrac{\mathbf x}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf x}{\sqrt{\mathbf x \mathbin{\unicode{x25CB}} \mathbf x}}$$ .
In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one.
The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$p_w^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$
|}
== See Also ==
* [[Geometric norm]]
c2af0a4c3afa26753480f65497964b14d1bce899
235
208
2023-10-23T07:19:48Z
Eric Lengyel
1
wikitext
text/x-wiki
''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''.
An element $$\mathbf u$$ is unitized by calculating
:$$\mathbf{\hat u} = \dfrac{\mathbf u}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf u}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}}$$ .
In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one.
The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$p_w^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$
|}
== See Also ==
* [[Geometric norm]]
b810edfc38a306e9b65579735ffccc9ead3011fa
Join and meet
0
11
209
183
2023-08-26T20:19:40Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
:$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description || Illustration
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
| style="padding: 12px;" | [[Image:point_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$.
Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$.
| style="padding: 12px;" | [[Image:line_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect.
Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
| style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$
| style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$.
Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p =\, &-g_xp_w \mathbf e_{41} - g_yp_w \mathbf e_{42} - g_zp_w \mathbf e_{43} \\ +\, &(g_yp_z - g_zp_y)\,\mathbf e_{23} + (g_zp_x - g_xp_z)\,\mathbf e_{31} + (g_xp_y - g_yp_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line perpendicular to plane $$\mathbf g$$ passing through point $$\mathbf p$$.
| style="padding: 12px;" | [[Image:plane_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p =\, &-l_{vx} p_w \mathbf e_{423} - l_{vy} p_w \mathbf e_{431} - l_{vz} p_w \mathbf e_{412} \\ +\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane perpendicular to line $$\boldsymbol l$$ containing point $$\mathbf p$$.
| style="padding: 12px;" | [[Image:line_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l =\, &(g_zl_{vy} - g_yl_{vz})\,\mathbf e_{423} + (g_xl_{vz} - g_zl_{vx})\,\mathbf e_{431} + (g_yl_{vx} - g_xl_{vy})\,\mathbf e_{412} \\ -\, &(g_xl_{mx} + g_yl_{my} + g_zl_{mz})\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane perpendicular to plane $$\mathbf g$$ containing line $$\boldsymbol l$$.
Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:plane_weight_join_line.svg|250px]]
|}
== See Also ==
* [[Exterior products]]
c3cc901c0e1b9c1544250ea7f339c3b2d0322cf6
239
209
2023-10-23T07:28:58Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
:$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description || Illustration
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
| style="padding: 12px;" | [[Image:point_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$.
Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$.
| style="padding: 12px;" | [[Image:line_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect.
Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
| style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$
| style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$.
Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &-p_wg_x \mathbf e_{41} - p_wg_y \mathbf e_{42} - p_wg_z \mathbf e_{43} \\ +\, &(p_zg_y - p_yg_z)\,\mathbf e_{23} + (p_xg_z - p_zg_x)\,\mathbf e_{31} + (p_yg_x - p_xg_y)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line containing point $$\mathbf p$$ and perpendicular to plane $$\mathbf g$$.
| style="padding: 12px;" | [[Image:plane_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606} =\, &-p_w l_{vx} \mathbf e_{423} - p_w l_{vy} \mathbf e_{431} - p_w l_{vz} \mathbf e_{412} \\ +\, &(p_x l_{vx} + p_y l_{vy} + p_z l_{vz})\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing point $$\mathbf p$$ and perpendicular to line $$\boldsymbol l$$.
| style="padding: 12px;" | [[Image:line_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &(l_{vy} g_z - l_{vz} g_y)\,\mathbf e_{423} + (l_{vz} g_x - l_{vx} g_z)\,\mathbf e_{431} + (l_{vx} g_y - l_{vy} g_x)\,\mathbf e_{412} \\ -\, &(l_{mx} g_x + l_{my} g_y + l_{mz} g_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and perpendicular to plane $$\mathbf g$$.
Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:plane_weight_join_line.svg|250px]]
|}
== See Also ==
* [[Exterior products]]
ec4c7cd493c92516285b585ef9606335bb43255a
Projections
0
50
210
52
2023-08-26T21:59:03Z
Eric Lengyel
1
wikitext
text/x-wiki
Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below.
The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
== Projection ==
The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula
:$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf x) \vee \mathbf y$$ .
Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Projection Formula !! Illustration
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$.
$$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$
| style="padding: 12px;" | [[Image:point_plane.svg|300px]]
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.
$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$
| style="padding: 12px;" | [[Image:point_line.svg|300px]]
|-
| style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$.
$$\begin{split}(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | [[Image:line_plane.svg|300px]]
|}
== Antiprojection ==
The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula
:$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \vee \mathbf x) \wedge \mathbf y$$ .
Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Antiprojection Formula !! Illustration
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$.
$$(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$
| style="padding: 12px;" | [[Image:plane_point.svg|300px]]
|-
| style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.
$$\begin{split}(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \boldsymbol l) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | [[Image:line_point.svg|300px]]
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$.
$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$
| style="padding: 12px;" | [[Image:plane_line.svg|300px]]
|}
== Projection of Origin ==
When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Projection Formula !! Description
|-
| style="padding: 12px;" | $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$.
|-
| style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$.
|}
== Antiprojection of Horizon ==
Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the connect operation with the antidual instead of the dual. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Antiprojection Formula !! Description
|-
| style="padding: 12px;" | $$(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \mathbf p = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$.
|-
| style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$.
|}
== See Also ==
* [[Interior product]]
* [[Join and meet]]
ab50ca59445a9f7bb3e004aed35ce3db92f54a6c
211
210
2023-08-27T00:48:05Z
Eric Lengyel
1
wikitext
text/x-wiki
Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below.
The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
== Projection ==
The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula
:$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf x) \vee \mathbf y$$ .
Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Projection Formula !! Illustration
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$.
$$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$
| style="padding: 12px;" | [[Image:point_onto_plane.svg|300px]]
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.
$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$
| style="padding: 12px;" | [[Image:point_onto_line.svg|300px]]
|-
| style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$.
$$\begin{split}(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | [[Image:line_onto_plane.svg|300px]]
|}
== Antiprojection ==
The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula
:$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \vee \mathbf x) \wedge \mathbf y$$ .
Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Antiprojection Formula !! Illustration
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$.
$$(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$
| style="padding: 12px;" | [[Image:plane_onto_point.svg|300px]]
|-
| style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.
$$\begin{split}(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \boldsymbol l) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | [[Image:line_onto_point.svg|300px]]
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$.
$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$
| style="padding: 12px;" | [[Image:plane_onto_line.svg|300px]]
|}
== Projection of Origin ==
When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Projection Formula !! Description
|-
| style="padding: 12px;" | $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$.
|-
| style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$.
|}
== Antiprojection of Horizon ==
Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the connect operation with the antidual instead of the dual. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Antiprojection Formula !! Description
|-
| style="padding: 12px;" | $$(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \mathbf p = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$.
|-
| style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$.
|}
== See Also ==
* [[Interior product]]
* [[Join and meet]]
76124b6969d47846a6371e17fbc45ce4365d4ab2
218
211
2023-08-27T00:50:51Z
Eric Lengyel
1
/* See Also */
wikitext
text/x-wiki
Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below.
The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
== Projection ==
The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula
:$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf x) \vee \mathbf y$$ .
Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Projection Formula !! Illustration
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$.
$$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$
| style="padding: 12px;" | [[Image:point_onto_plane.svg|300px]]
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.
$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$
| style="padding: 12px;" | [[Image:point_onto_line.svg|300px]]
|-
| style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$.
$$\begin{split}(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | [[Image:line_onto_plane.svg|300px]]
|}
== Antiprojection ==
The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula
:$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \vee \mathbf x) \wedge \mathbf y$$ .
Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Antiprojection Formula !! Illustration
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$.
$$(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$
| style="padding: 12px;" | [[Image:plane_onto_point.svg|300px]]
|-
| style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.
$$\begin{split}(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \boldsymbol l) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | [[Image:line_onto_point.svg|300px]]
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$.
$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$
| style="padding: 12px;" | [[Image:plane_onto_line.svg|300px]]
|}
== Projection of Origin ==
When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Projection Formula !! Description
|-
| style="padding: 12px;" | $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$.
|-
| style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$.
|}
== Antiprojection of Horizon ==
Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the connect operation with the antidual instead of the dual. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Antiprojection Formula !! Description
|-
| style="padding: 12px;" | $$(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \mathbf p = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$.
|-
| style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$.
|}
== See Also ==
* [[Join and meet]]
5dd9806f57aa3a46228b8ab993a8aeae6c8dc2fa
219
218
2023-08-27T00:56:59Z
Eric Lengyel
1
wikitext
text/x-wiki
Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below.
The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
== Projection ==
The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula
:$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf x) \vee \mathbf y$$ .
Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Projection Formula !! Illustration
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$.
$$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$
| style="padding: 2em;" | [[Image:point_onto_plane.svg|200px]]
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.
$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$
| style="padding: 2em;" | [[Image:point_onto_line.svg|200px]]
|-
| style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$.
$$\begin{split}(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$
| style="padding: 2em;" | [[Image:line_onto_plane.svg|200px]]
|}
== Antiprojection ==
The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula
:$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \vee \mathbf x) \wedge \mathbf y$$ .
Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Antiprojection Formula !! Illustration
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$.
$$(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$
| style="padding: 2em;" | [[Image:plane_onto_point.svg|200px]]
|-
| style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.
$$\begin{split}(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \boldsymbol l) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$
| style="padding: 2em;" | [[Image:line_onto_point.svg|200px]]
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$.
$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$
| style="padding: 2em;" | [[Image:plane_onto_line.svg|200px]]
|}
== Projection of Origin ==
When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Projection Formula !! Description
|-
| style="padding: 12px;" | $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$.
|-
| style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$.
|}
== Antiprojection of Horizon ==
Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the connect operation with the antidual instead of the dual. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Antiprojection Formula !! Description
|-
| style="padding: 12px;" | $$(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \mathbf p = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$.
|-
| style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$.
|}
== See Also ==
* [[Join and meet]]
f09eb99eddac4f0bdaa57a7b42a841c4fa5c37a3
227
219
2023-10-19T06:09:54Z
Eric Lengyel
1
wikitext
text/x-wiki
Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below.
The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
== Projection ==
The orthogonal projection of an object $$\mathbf a$$ onto an object $$\mathbf b$$ is given by the general formula
:$$\mathbf b \vee (\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606})$$ ,
where the operation in parentheses is the [[weight expansion]] of $$\mathbf a$$ into $$\mathbf b$$.
Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Projection Formula !! Illustration
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$.
$$\mathbf g \vee (\mathbf p \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$
| style="padding: 2em;" | [[Image:point_onto_plane.svg|200px]]
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.
$$\begin{split}\boldsymbol l \vee (\mathbf p \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)(l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3) \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$
| style="padding: 2em;" | [[Image:point_onto_line.svg|200px]]
|-
| style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$.
$$\begin{split}\mathbf g \vee (\boldsymbol l \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$
| style="padding: 2em;" | [[Image:line_onto_plane.svg|200px]]
|}
== Antiprojection ==
The orthogonal antiprojection of an object $$\mathbf a$$ onto an object $$\mathbf b$$ is given by the general formula
:$$\mathbf b \wedge (\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606})$$ ,
where the operation in parentheses is the [[weight contraction]] of $$\mathbf a$$ with $$\mathbf b$$.
Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Antiprojection Formula !! Illustration
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$.
$$\mathbf p \wedge (\mathbf g \vee \mathbf p^\unicode["segoe ui symbol"]{x2606}) = p_w^2(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$
| style="padding: 2em;" | [[Image:plane_onto_point.svg|200px]]
|-
| style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.
$$\begin{split}\mathbf p \wedge (\boldsymbol l \vee \mathbf p^\unicode["segoe ui symbol"]{x2606}) =\, &p_w^2(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$
| style="padding: 2em;" | [[Image:line_onto_point.svg|200px]]
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$.
$$\begin{split}\boldsymbol l \wedge (\mathbf g \vee \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$
| style="padding: 2em;" | [[Image:plane_onto_line.svg|200px]]
|}
== Projection of Origin ==
When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Projection Formula !! Description
|-
| style="padding: 12px;" | $$\mathbf g \vee (\mathbf e_4 \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$.
|-
| style="padding: 12px;" | $$\boldsymbol l \vee (\mathbf e_4 \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$.
|}
== Antiprojection of Horizon ==
Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the [[bulk contraction]]. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Antiprojection Formula !! Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge (\mathbf e_{321} \vee \mathbf p^\unicode["segoe ui symbol"]{x2605}) = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$.
|-
| style="padding: 12px;" | $$\boldsymbol l \wedge (\mathbf e_{321} \vee \boldsymbol l^\unicode["segoe ui symbol"]{x2605}) = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$.
|}
== See Also ==
* [[Join and meet]]
c2832a4b1e6dc1c446a112822cf0e0e13f0c04fd
File:Point onto plane.svg
6
148
212
2023-08-27T00:48:42Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Point onto line.svg
6
149
213
2023-08-27T00:48:53Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Line onto plane.svg
6
150
214
2023-08-27T00:49:04Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Plane onto point.svg
6
151
215
2023-08-27T00:49:15Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Line onto point.svg
6
152
216
2023-08-27T00:49:32Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Plane onto line.svg
6
153
217
2023-08-27T00:49:44Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Rotation
0
30
220
32
2023-09-05T20:19:45Z
Eric Lengyel
1
/* See Also */
wikitext
text/x-wiki
A ''rotation'' is a proper isometry of Euclidean space.
For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]]
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathbf R$$ differs from a general [[motor]] only in that it is always the case that $$R_{mw} = 0$$. The line $$\boldsymbol l$$ and its weight [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}}$$ lies in the [[horizon]] in directions perpendicular to the direction of $$\boldsymbol l$$.
== Calculation ==
The exact rotation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)p_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})p_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})p_z + 2(R_{vy}R_{mz} - R_{vz}R_{my} + R_{vw}R_{mx})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)p_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})p_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})p_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} + R_{vw}R_{my})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)p_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})p_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})p_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} + R_{vw}R_{mz})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)l_{vx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{vy} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)l_{vy} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{vz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)l_{vz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{vx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(R_{vy}R_{my} + R_{vz}R_{mz})l_{vx} + 2(R_{vy}R_{mx} + R_{vx}R_{my} - R_{vw}R_{mz})l_{vy} + 2(R_{vz}R_{mx} + R_{vx}R_{mz} + R_{vw}R_{my})l_{vz} + (1 - 2R_{vy}^2 - 2R_{vz}^2)l_{mx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{my} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(R_{vz}R_{mz} + R_{vx}R_{mx})l_{vy} + 2(R_{vz}R_{my} + R_{vy}R_{mz} - R_{vw}R_{mx})l_{vz} + 2(R_{vx}R_{my} + R_{vy}R_{mx} + R_{vw}R_{mz})l_{vx} + (1 - 2R_{vz}^2 - 2R_{vx}^2)l_{my} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{mz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(R_{vx}R_{mx} + R_{vy}R_{my})l_{vz} + 2(R_{vx}R_{mz} + R_{vz}R_{mx} - R_{vw}R_{my})l_{vx} + 2(R_{vy}R_{mz} + R_{vz}R_{my} + R_{vw}R_{mx})l_{vy} + (1 - 2R_{vx}^2 - 2R_{vy}^2)l_{mz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{mx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)g_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})g_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)g_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})g_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)g_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})g_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(R_{vy}R_{mz} - R_{vz}R_{my} - R_{vw}R_{mx})g_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} - R_{vw}R_{my})g_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} - R_{vw}R_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Reciprocal rotation]]
* [[Translation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
9a99acd8431977d5be50d4be17527e6c292be7e1
Translation
0
31
221
144
2023-09-05T20:19:56Z
Eric Lengyel
1
/* See Also */
wikitext
text/x-wiki
__NOTOC__
A ''translation'' is a proper isometry of Euclidean space.
The specific kind of [[motor]]
:$$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$
performs a translation by twice the displacement vector $$\mathbf t = (t_x, t_y, t_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\mathbf t$$.
== Exponential Form ==
A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as
:$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{1}{2}\delta \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$
== Matrix Form ==
When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix
:$$\begin{bmatrix}
1 & 0 & 0 & t_x \\
0 & 1 & 0 & t_y \\
0 & 0 & 1 & t_z \\
0 & 0 & 0 & 1 \\
\end{bmatrix}$$ .
== Translation to Origin ==
A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator
:$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ .
== Calculation ==
The exact translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2t_xp_w)\mathbf e_1 + (p_y + 2t_yp_w)\mathbf e_2 + (p_z + 2t_zp_w)\mathbf e_3 + p_w\mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2t_y l_{vz} - 2t_z l_{vy})\mathbf e_{23} + (l_{my} + 2t_z l_{vx} - 2t_x l_{vz})\mathbf e_{31} + (l_{mz} + 2t_x l_{vy} - 2t_y l_{vx})\mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2t_xg_x - 2t_yg_y - 2t_zg_z) \mathbf e_{321}$$
|}
== See Also ==
* [[Reciprocal translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
e5b7d3f0c9544d8989f54ac1de5cccc363e85648
Complements
0
41
225
43
2023-10-19T01:27:17Z
Eric Lengyel
1
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf x$$ has a ''right complement'', which we denote by $$\overline{\mathbf x}$$, that satisfies the equation
:$$\mathbf x \wedge \overline{\mathbf x} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf x}$$, that satisfies the equation
:$$\underline{\mathbf x} \wedge \mathbf x = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf x} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}\,\overline{\mathbf x}$$ .
This shows that the left and right complements of an element $$\mathbf x$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf x)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf x)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf x}} = \mathbf x$$.
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf x \vee \overline{\mathbf x} = \mathbf 1$$
:$$\underline{\mathbf x} \vee\mathbf x = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|900px]]
== Weight Complements ==
The complement of an element's weight is particularly useful because it extracts the attitude of a geometric object as an element expressed on an orthogonal basis. These arise naturally in [[projections]], which make use of the [[interior product]].
The following table lists the weight left complement for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Left Complement !! Description
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\underline{\mathbf p_\smash{\unicode{x25CB}}} = -p_w \mathbf e_{321}$$
| style="padding: 12px;" | Plane at infinity.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$
| style="padding: 12px;" | Line at infinity perpendicular to line $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\underline{\mathbf g_\smash{\unicode{x25CB}}} = g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3$$
| style="padding: 12px;" | Normal vector, or point at infinity in direction perpendicular to plane $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw}$$
| style="padding: 12px;" | $$\underline{\mathbf Q_\smash{\unicode{x25CB}}} = -Q_{vx} \mathbf e_{23} - Q_{vy} \mathbf e_{31} - Q_{vz} \mathbf e_{12} + Q_{vw}$$
| style="padding: 12px;" | Conventional [[quaternion]] $$\mathbf q = Q_{vx} \mathbf i + Q_{vy} \mathbf j + Q_{vz} \mathbf k + Q_{vw} = (a_x \mathbf i + a_y \mathbf j + a_z \mathbf k)\sin\phi + \cos\phi$$, which is the 3D position-free counterpart of a [[motor]].
The sandwich product $$\mathbf q \mathbin{\unicode{x27D1}} \mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ rotates the vector $$\mathbf u$$ through the angle $$2\phi$$ about the axis $$\mathbf a$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\underline{\mathbf F_\smash{\unicode{x25CB}}} = F_{gx} \mathbf e_1 + F_{gy} \mathbf e_2 + F_{gz} \mathbf e_3 - F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | 3D position-free counterpart of a [[flector]] having the form $$\mathbf f = (a_x \mathbf e_1 + a_y \mathbf e_2 + a_z \mathbf e_3)\cos\phi + \mathbf e_{123}\sin\phi$$.
The sandwich product $$-\mathbf f \mathbin{\unicode{x27D1}} \mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde f}$$ rotates the vector $$\mathbf u$$ through the angle $$2\phi$$ about the axis $$\mathbf a$$ and reflects it along the direction of $$\mathbf a$$.
|}
== See Also ==
* [[Duality]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
dc691cbe79489d059ddf7bba23974ca696dace63
229
225
2023-10-23T06:07:35Z
Eric Lengyel
1
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf x$$ has a ''right complement'', which we denote by $$\overline{\mathbf x}$$, that satisfies the equation
:$$\mathbf x \wedge \overline{\mathbf x} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf x}$$, that satisfies the equation
:$$\underline{\mathbf x} \wedge \mathbf x = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf x} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}\,\overline{\mathbf x}$$ .
This shows that the left and right complements of an element $$\mathbf x$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf x)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf x)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf x}} = \mathbf x$$.
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf x \vee \overline{\mathbf x} = \mathbf 1$$
:$$\underline{\mathbf x} \vee\mathbf x = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|900px]]
== See Also ==
* [[Duality]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
36802ca59e4e6a1cb9e288cfbf1d5cc0c061586c
232
229
2023-10-23T07:02:30Z
Eric Lengyel
1
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation
:$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation
:$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ .
This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$.
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$
:$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|900px]]
== See Also ==
* [[Duality]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
8730531e134b6cf7353a5dc591e488dc8ec6d960
Main Page
0
1
226
169
2023-10-19T01:28:39Z
Eric Lengyel
1
/* Pages */
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf x$$, denoted by $$\operatorname{gr}(\mathbf x)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf x$$. Denoted by $$\operatorname{ag}(\mathbf x)$$, the antigrade of $$\mathbf x$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Reverses]]
* [[Bulk and weight]]
* [[Attitude]]
* [[Duality]]
* [[Geometric norm]]
* [[Geometric property]]
* [[Unitization]]
=== Products and other binary operations ===
* [[Geometric products]]
* [[Exterior products]]
* [[Dot products]]
* [[Join and meet]]
* [[Projections]]
* [[Commutators]]
* [[Euclidean distance]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
=== Research Articles ===
* [[Projective Geometric Algebra Done Right]]
* [[Symmetries in Projective Geometric Algebra]]
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]
61430f6615bfb5486a7c3d043edf6b9a362523de
File:Complements.svg
6
42
230
44
2023-10-23T06:54:33Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Complements.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
231
230
2023-10-23T07:01:04Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Complements.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Bulk and weight
0
6
233
8
2023-10-23T07:15:32Z
Eric Lengyel
1
wikitext
text/x-wiki
The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''.
The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as
:$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$,
where $$\mathbf G$$ is the metric exomorphism matrix. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor.
The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as
:$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$,
where $$\mathbb G$$ is the antimetric anti-exomorphism matrix. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor.
The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon.
An element is [[unitized]] when the magnitude of its weight is one.
The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$
|}
== See Also ==
* [[Attitude]]
* [[Geometric norm]]
* [[Unitization]]
* [[Complements]]
409ee89bb411c7874fe7e6ee12a0ba1ca75aab51
234
233
2023-10-23T07:15:52Z
Eric Lengyel
1
wikitext
text/x-wiki
The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''.
The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as
:$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$,
where $$\mathbf G$$ is the metric exomorphism matrix. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor.
The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as
:$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$,
where $$\mathbb G$$ is the metric anti-exomorphism matrix. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor.
The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon.
An element is [[unitized]] when the magnitude of its weight is one.
The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$
|}
== See Also ==
* [[Attitude]]
* [[Geometric norm]]
* [[Unitization]]
* [[Complements]]
b0b08f02c9bc5fd0a74e664c33d01a4c41188780
Attitude
0
5
236
6
2023-10-23T07:20:09Z
Eric Lengyel
1
wikitext
text/x-wiki
The attitude function, denoted by $$\operatorname{att}$$, extracts the attitude of a geometry and returns a purely directional object. The attitude function is defined as
:$$\operatorname{att}(\mathbf u) = \mathbf u \vee \overline{\mathbf e_4}$$ .
The attitude of a [[line]] is the line's direction as a vector, and the attitude of a [[plane]] is the plane's normal as a bivector.
The following table lists the attitude for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Attitude
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\operatorname{att}(\mathbf z) = y \mathbf e_{321}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\operatorname{att}(\mathbf p) = p_w \mathbf 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\operatorname{att}(\boldsymbol l) = l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\operatorname{att}(\mathbf g) = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
|}
7df5a10770f69921e6956ec8d5eeb5591197bcac
Geometric norm
0
38
237
177
2023-10-23T07:23:09Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm.
For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator.
== Bulk Norm ==
The ''bulk norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf u$$ with itself:
:$$\left\Vert\mathbf u\right\Vert_\unicode{x25CF} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}$$ .
An element that has a bulk norm of '''1''' is said to be ''bulk normalized''.
The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$
|}
== Weight Norm ==
The ''weight norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf u$$ with itself:
:$$\left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ .
(Note that the square root in this case is taken with respect to the geometric antiproduct.)
An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''.
The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$
|}
== Geometric Norm ==
The bulk norm and weight norm are summed to construct the ''geometric norm'' given by
:$$\left\Vert\mathbf u\right\Vert = \left\Vert\mathbf u\right\Vert_\unicode{x25CF} + \left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u} + \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ .
This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because
:$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ .
Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf u$$ is given by
:$$\widehat{\left\Vert\mathbf u\right\Vert} = \dfrac{\left\Vert\mathbf u\right\Vert}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf u\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}} + {\large\unicode{x1D7D9}}$$ .
The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$.
Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== See Also ==
* [[Geometric property]]
7c0a8edcb3310676d65598699758efe8aa29597a
Geometric constraint
0
40
238
178
2023-10-23T07:24:10Z
Eric Lengyel
1
wikitext
text/x-wiki
An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric property'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is,
:$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$
and
:$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ .
The set of all elements possessing the geometric property is closed under both the [[geometric product]] and [[geometric antiproduct]].
The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ to possess the geometric property. Points and planes do not have any requirements—they all possess the geometric property.
{| class="wikitable"
! Type !! Definition !! Requirement
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$xy = 0$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$
|}
== See Also ==
* [[Geometric norm]]
b73657111716cab3a28893514c3d4a6ad23b8239
Join and meet
0
11
240
239
2023-10-23T07:31:33Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
:$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description || Illustration
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
| style="padding: 12px;" | [[Image:point_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$.
Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$.
| style="padding: 12px;" | [[Image:line_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect.
Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
| style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$
| style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$.
Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &-p_wg_x \mathbf e_{41} - p_wg_y \mathbf e_{42} - p_wg_z \mathbf e_{43} \\ +\, &(p_zg_y - p_yg_z)\,\mathbf e_{23} + (p_xg_z - p_zg_x)\,\mathbf e_{31} + (p_yg_x - p_xg_y)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line containing point $$\mathbf p$$ and perpendicular to plane $$\mathbf g$$.
| style="padding: 12px;" | [[Image:plane_connect_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606} =\, &-p_w l_{vx} \mathbf e_{423} - p_w l_{vy} \mathbf e_{431} - p_w l_{vz} \mathbf e_{412} \\ +\, &(p_x l_{vx} + p_y l_{vy} + p_z l_{vz})\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing point $$\mathbf p$$ and perpendicular to line $$\boldsymbol l$$.
| style="padding: 12px;" | [[Image:line_connect_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &(l_{vy} g_z - l_{vz} g_y)\,\mathbf e_{423} + (l_{vz} g_x - l_{vx} g_z)\,\mathbf e_{431} + (l_{vx} g_y - l_{vy} g_x)\,\mathbf e_{412} \\ -\, &(l_{mx} g_x + l_{my} g_y + l_{mz} g_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and perpendicular to plane $$\mathbf g$$.
Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:plane_connect_line.svg|250px]]
|}
== See Also ==
* [[Exterior products]]
53446184664d8ba10283339e9997c313dcad293a
248
240
2023-10-26T20:34:27Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
:$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description || Illustration
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
| style="padding: 12px;" | [[Image:point_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$.
Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$.
| style="padding: 12px;" | [[Image:line_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect.
Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
| style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$
| style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$.
Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$.
| style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &-p_wg_x \mathbf e_{41} - p_wg_y \mathbf e_{42} - p_wg_z \mathbf e_{43} \\ +\, &(p_zg_y - p_yg_z)\,\mathbf e_{23} + (p_xg_z - p_zg_x)\,\mathbf e_{31} + (p_yg_x - p_xg_y)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | Line containing point $$\mathbf p$$ and perpendicular to plane $$\mathbf g$$.
| style="padding: 12px; text-align: center;" | [[Image:plane_connect_point.svg|200px]]
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606} =\, &-p_w l_{vx} \mathbf e_{423} - p_w l_{vy} \mathbf e_{431} - p_w l_{vz} \mathbf e_{412} \\ +\, &(p_x l_{vx} + p_y l_{vy} + p_z l_{vz})\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing point $$\mathbf p$$ and perpendicular to line $$\boldsymbol l$$.
| style="padding: 12px; text-align: center;" | [[Image:line_connect_point.svg|200px]]
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &(l_{vy} g_z - l_{vz} g_y)\,\mathbf e_{423} + (l_{vz} g_x - l_{vx} g_z)\,\mathbf e_{431} + (l_{vx} g_y - l_{vy} g_x)\,\mathbf e_{412} \\ -\, &(l_{mx} g_x + l_{my} g_y + l_{mz} g_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and perpendicular to plane $$\mathbf g$$.
Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$.
| style="padding: 12px; text-align: center;" | [[Image:plane_connect_line.svg|200px]]
|}
== See Also ==
* [[Exterior products]]
5c8e034717d6e173a6c2a37f892c46db0d059da4
File:Plane connect point.svg
6
154
241
2023-10-23T07:31:53Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Line connect point.svg
6
155
242
2023-10-23T07:32:06Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Plane connect line.svg
6
156
243
2023-10-23T07:32:18Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Main Page
0
1
244
226
2023-10-23T07:34:00Z
Eric Lengyel
1
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Reverses]]
* [[Bulk and weight]]
* [[Attitude]]
* [[Duality]]
* [[Geometric norm]]
* [[Geometric property]]
* [[Unitization]]
=== Products and other binary operations ===
* [[Geometric products]]
* [[Exterior products]]
* [[Dot products]]
* [[Join and meet]]
* [[Projections]]
* [[Commutators]]
* [[Euclidean distance]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
=== Research Articles ===
* [[Projective Geometric Algebra Done Right]]
* [[Symmetries in Projective Geometric Algebra]]
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]
9f6cea0ca66d981322e46c3c45287cfcbbffbf47
250
244
2023-12-02T08:30:19Z
Eric Lengyel
1
/* Products and other binary operations */
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Reverses]]
* [[Bulk and weight]]
* [[Attitude]]
* [[Duality]]
* [[Geometric norm]]
* [[Geometric property]]
* [[Unitization]]
=== Products and other binary operations ===
* [[Geometric products]]
* [[Exterior products]]
* [[Dot products]]
* [[Join and meet]]
* [[Projections]]
* [[Euclidean distance]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
=== Research Articles ===
* [[Projective Geometric Algebra Done Right]]
* [[Symmetries in Projective Geometric Algebra]]
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]
f12a5d0d1d996a2249798798e009bdde7419522f
271
250
2024-01-22T07:58:10Z
Eric Lengyel
1
/* Products and other binary operations */
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Reverses]]
* [[Bulk and weight]]
* [[Attitude]]
* [[Duality]]
* [[Geometric norm]]
* [[Geometric property]]
* [[Unitization]]
=== Products and other binary operations ===
* [[Geometric products]]
* [[Exterior products]]
* [[Dot products]]
* [[Interior products]]
* [[Join and meet]]
* [[Projections]]
* [[Euclidean distance]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
=== Research Articles ===
* [[Projective Geometric Algebra Done Right]]
* [[Symmetries in Projective Geometric Algebra]]
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]
d1cc9c21e37065e32de27d6afb0076ea18d20d93
279
271
2024-01-23T02:09:20Z
Eric Lengyel
1
/* Products and other binary operations */
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Reverses]]
* [[Bulk and weight]]
* [[Attitude]]
* [[Duality]]
* [[Geometric norm]]
* [[Geometric property]]
* [[Unitization]]
=== Products and other binary operations ===
* [[Exterior products]]
* [[Dot products]]
* [[Interior products]]
* [[Geometric products]]
* [[Join and meet]]
* [[Projections]]
* [[Euclidean distance]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
=== Research Articles ===
* [[Projective Geometric Algebra Done Right]]
* [[Symmetries in Projective Geometric Algebra]]
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]
bcbd38631c0971ca29c0d3c8d01cac43dfc7376c
292
279
2024-02-09T00:59:18Z
Eric Lengyel
1
/* Various properties and unary operations */
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Reverses]]
* [[Bulk and weight]]
* [[Attitude]]
* [[Duality]]
* [[Geometric norm]]
* [[Geometric constraint]]
* [[Unitization]]
=== Products and other binary operations ===
* [[Exterior products]]
* [[Dot products]]
* [[Interior products]]
* [[Geometric products]]
* [[Join and meet]]
* [[Projections]]
* [[Euclidean distance]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
=== Research Articles ===
* [[Projective Geometric Algebra Done Right]]
* [[Symmetries in Projective Geometric Algebra]]
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]
e8f33e6c891e7d9134f4150d341c592b1ca30b62
Dot products
0
67
245
176
2023-10-23T07:35:22Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''dot product'' is the inner product in geometric algebra. The dot product its antiproduct are important for the calculation of angles and [[Geometric norm | norms]].
== Dot Product ==
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ ,
where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ metric exomorphism matrix, and we are using ordinary matrix multiplication.
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade.
The following Cayley table shows the dot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:DotProduct.svg|720px]]
== Antidot product ==
The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ ,
where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ metric anti-exomorphism matrix.
The antidot product can also be derived from the dot product using the De Morgan relationship
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ .
The following Cayley table shows the antidot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:AntidotProduct.svg|720px]]
== See Also ==
* [[Geometric products]]
* [[Wedge products]]
bec1dc2fe0d4fd8c022ea778486eace29964117d
263
245
2024-01-21T22:02:14Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''dot product'' is the inner product in geometric algebra. The dot product and its antiproduct are important for the calculation of angles and [[Geometric norm | norms]].
== Dot Product ==
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ ,
where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ metric exomorphism matrix, and we are using ordinary matrix multiplication.
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade.
== Antidot Product ==
The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ ,
where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ metric antiexomorphism matrix.
The antidot product can also be derived from the dot product using the De Morgan relationship
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ .
== Table ==
The following table shows the dot product and antidot product of each basis element $$\mathbf u$$ in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ with itself. All other dot products and antidot products are zero.
[[Image:Dots.svg|720px]]
== See Also ==
* [[Geometric products]]
* [[Wedge products]]
020532a650ad171d0491d71b7b332b414ce9aae1
Magnitude
0
24
249
140
2023-11-25T08:12:17Z
Eric Lengyel
1
wikitext
text/x-wiki
A ''magnitude'' is a quantity that represents a concrete measurement of some kind. In rigid geometric algebra, a magnitude $$\mathbf z$$ is composed of two components, a scalar and an antiscalar, as follows:
:$$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
Magnitudes are homogeneous just like everything else in a projective geometric algebra. This means it has both a [[bulk]] and a [[weight]], and it is [[unitized]] by making the magnitude of its weight one.
=== Examples ===
* The [[geometric norm]] produces a magnitude that gives the perpendicular distance between an object and the origin. This is also half the distance that the origin is moved by an object used as an operator.
* [[Euclidean distances]] between objects are expressed as magnitudes given by the sum of the [[bulk norm]] and [[weight norm]] of expressions involving [[attitudes]].
* Exponentiating the magnitude $$\delta\mathbf 1 + \phi {\large\unicode{x1d7d9}}$$ produces a [[motor]] for which $$\delta/\phi$$ is the pitch of the screw transformation.
== See Also ==
* [[Geometric norm]]
* [[Unitization]]
2e7e893e083b0ab25bb8cba664a6a906bc887874
Reverses
0
58
252
60
2024-01-10T00:49:36Z
Eric Lengyel
1
wikitext
text/x-wiki
''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations.
For any element $$\mathbf x$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf x$$, which we denote by $$\mathbf{\tilde x}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{234}$$ is $$\mathbf e_4 \wedge \mathbf e_3 \wedge \mathbf e_2$$, which we would write as $$-\mathbf e_{234}$$since 432 is an odd permutation of 234. In general, the reverse of an element $$\mathbf x$$ is given by
:$$\mathbf{\tilde x} = (-1)^{\operatorname{gr}(\mathbf x)(\operatorname{gr}(\mathbf x) - 1)/2}\,\mathbf x$$ .
Symmetrically, for any element $$\mathbf x$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf x$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf x$$ is given by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{ag}(\mathbf x)(\operatorname{ag}(\mathbf x) - 1)/2}\,\mathbf x$$ .
The reverse and antireverse of any element $$\mathbf x$$ are related by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}(-1)^{n(n-1)/2}\,\mathbf{\tilde x}$$ ,
where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse
:$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ ,
and similarly for the antireverse.
The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Reverses.svg|820px]]
== See Also ==
* [[Complements]]
8e47ad7c3629a14ea11126d6c4050166f9f1333c
275
252
2024-01-22T08:01:34Z
Eric Lengyel
1
wikitext
text/x-wiki
''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations.
For any element $$\mathbf x$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf x$$, which we denote by $$\mathbf{\tilde x}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{234}$$ is $$\mathbf e_4 \wedge \mathbf e_3 \wedge \mathbf e_2$$, which we would write as $$-\mathbf e_{234}$$since 432 is an odd permutation of 234. In general, the reverse of an element $$\mathbf x$$ is given by
:$$\mathbf{\tilde x} = (-1)^{\operatorname{gr}(\mathbf x)(\operatorname{gr}(\mathbf x) - 1)/2}\,\mathbf x$$ .
Symmetrically, for any element $$\mathbf x$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf x$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf x$$ is given by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{ag}(\mathbf x)(\operatorname{ag}(\mathbf x) - 1)/2}\,\mathbf x$$ .
The reverse and antireverse of any element $$\mathbf x$$ are related by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}(-1)^{n(n-1)/2}\,\mathbf{\tilde x}$$ ,
where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse
:$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ ,
and similarly for the antireverse.
The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Reverses.svg|720px]]
== See Also ==
* [[Complements]]
c42c9b3531f85909f47db12941dfacaba9fd3cbe
286
275
2024-02-01T06:51:08Z
Eric Lengyel
1
wikitext
text/x-wiki
''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations.
For any element $$\mathbf u$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf u$$, which we denote by $$\mathbf{\tilde u}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{423}$$ is $$\mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_4$$, which we would write as $$-\mathbf e_{423}$$since 324 is an odd permutation of 423. In general, the reverse of an element $$\mathbf u$$ is given by
:$$\mathbf{\tilde u} = (-1)^{\operatorname{gr}(\mathbf u)(\operatorname{gr}(\mathbf u) - 1)/2}\,\mathbf u$$ .
Symmetrically, for any element $$\mathbf u$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf u$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf u$$ is given by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{ag}(\mathbf u)(\operatorname{ag}(\mathbf u) - 1)/2}\,\mathbf u$$ .
The reverse and antireverse of any element $$\mathbf u$$ are related by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}(-1)^{n(n-1)/2}\,\mathbf{\tilde u}$$ ,
where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse
:$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ ,
and similarly for the antireverse.
The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Reverses.svg|720px]]
== See Also ==
* [[Complements]]
b077d05f9bf66d3e40aa0d171815fc71b68ddd57
Rigid Geometric Algebra for 2D Space
0
19
253
207
2024-01-10T08:18:42Z
Eric Lengyel
1
/* Flectors */
wikitext
text/x-wiki
== Introduction ==
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.
__TOC__
<br clear="right" />
== Unary Operations ==
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.
[[Image:Unary201.svg|480px]]
== Geometric Products ==
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to −1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
[[Image:GeometricProduct201.svg|360px]]
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.
[[Image:GeometricAntiproduct201.svg|360px]]
== Points ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
== Lines ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ .
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$.
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.
== Bulk and Weight ==
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$
|}
== Unitization ==
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$p_z^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$
|}
== Geometric Norm ==
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$
|}
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$
|}
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== Join and Meet ==
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The points and lines appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
:$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
|-
| style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$
| style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect.
Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
|-
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$
| style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$.
|}
== Projections ==
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.
{| class="wikitable"
! Formula !! Description
|-
| style="padding: 12px;" | $$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$.
|-
| style="padding: 12px;" | $$\left(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$
| style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$.
|}
Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin.
:$$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.
:$$\left(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$
== Motors ==
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .
== Flectors ==
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form
:$$\mathbf F = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w \mathbf 1$$ .
A flector represents a transflection with respect to the line $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$. When the line is unitized, $$g_w$$ is half the translation distance parallel to the line.
45f3ced633bdadae34425458b0574a0ea773e788
285
253
2024-01-23T02:12:11Z
Eric Lengyel
1
/* Geometric Products */
wikitext
text/x-wiki
== Introduction ==
[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.
There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.
__TOC__
<br clear="right" />
== Unary Operations ==
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.
[[Image:Unary201.svg|480px]]
== Geometric Products ==
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to −1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
[[Image:GeometricProduct201.svg|360px]]
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.
[[Image:GeometricAntiproduct201.svg|360px]]
== Points ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
== Lines ==
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ .
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$.
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.
== Bulk and Weight ==
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$
|}
== Unitization ==
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$p_z^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$
|}
== Geometric Norm ==
The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$
|}
The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$
|}
The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== Join and Meet ==
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
The points and lines appearing in the following tables are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
:$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$
The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
{| class="wikitable"
! Formula || Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
|-
| style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$
| style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect.
Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
|-
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$
| style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$.
|}
== Projections ==
The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.
{| class="wikitable"
! Formula !! Description
|-
| style="padding: 12px;" | $$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$.
|-
| style="padding: 12px;" | $$\left(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$
| style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$.
|}
Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin.
:$$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.
:$$\left(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$
== Motors ==
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .
== Flectors ==
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form
:$$\mathbf F = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w \mathbf 1$$ .
A flector represents a transflection with respect to the line $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$. When the line is unitized, $$g_w$$ is half the translation distance parallel to the line.
df8e11003fa41431200874993f95f28c76388e93
File:Basis.svg
6
2
254
3
2024-01-21T21:43:19Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Basis.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:WedgeProduct.svg
6
71
255
73
2024-01-21T21:47:26Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:WedgeProduct.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
280
255
2024-01-23T02:09:46Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:WedgeProduct.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AntiwedgeProduct.svg
6
72
256
74
2024-01-21T21:48:10Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:AntiwedgeProduct.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
281
256
2024-01-23T02:10:02Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:AntiwedgeProduct.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Exterior products
0
73
257
75
2024-01-21T21:51:04Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct.
The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\mathbf a$$ and $$\mathbf b$$ are parallel, then their exterior product is zero. (Compare this to the [[dot product]], which is zero whenever $$\mathbf a$$ and $$\mathbf b$$ are orthogonal.)
== Exterior Product ==
The exterior product is widely known as the ''wedge product'' because it is written with an upward pointing wedge. The exterior product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \wedge \mathbf b$$ and read "$$\mathbf a$$ wedge $$\mathbf b$$". Grassmann called this the progressive combinatorial product.
The defining characteristic of the wedge product is that multiplying any vector $$\mathbf v$$ by itself produces zero: $$\mathbf v \wedge \mathbf v = 0$$. This implies that the wedge product is anticommutative for vectors, so we always have
:$$\mathbf v \wedge \mathbf w = -\mathbf w \wedge \mathbf v$$
for vectors $$\mathbf v$$ and $$\mathbf w$$. The wedge product is not anticommutative in general, however. For general basis elements $$\mathbf a$$ and $$\mathbf b$$, reversing the order of the operands satisfies the relationship
:$$\mathbf a \wedge \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\operatorname{gr}(\mathbf b)} \mathbf b \wedge \mathbf a$$ .
The wedge product adds the [[grades]] of its operands, so we have
:$$\operatorname{gr}(\mathbf a \wedge \mathbf b) = \operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)$$ .
The following Cayley table shows the exterior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
<span style="font-size: 150%;">Wedge Product $$\mathbf a \wedge \mathbf b$$</span>
[[Image:WedgeProduct.svg|720px]]
== Exterior Antiproduct ==
The exterior antiproduct is a dual to the exterior product. It is written with a downward pointing wedge and thus called the ''antiwedge product''. The exterior antiproduct $$\mathbf a \vee \mathbf b$$ is read "$$\mathbf a$$ antiwedge $$\mathbf b$$". Grassmann called this the regressive combinatorial product.
Whereas the wedge product combines the full dimensions of its operands, the antiwedge product combines the empty dimensions of its operands. The antiwedge product adds the [[antigrades]] of its operands, so we have
:$$\operatorname{ag}(\mathbf a \vee \mathbf b) = \operatorname{ag}(\mathbf a) + \operatorname{ag}(\mathbf b)$$ .
The following Cayley table shows the exterior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
<span style="font-size: 150%;">Antiwedge Product $$\mathbf a \vee \mathbf b$$</span>
[[Image:AntiwedgeProduct.svg|720px]]
== De Morgan Laws ==
There are many possible exterior products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.
:$$\overline{\mathbf a \wedge \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \vee \overline{\mathbf b}$$
:$$\overline{\mathbf a \vee \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \wedge \overline{\mathbf b}$$
:$$\underline{\mathbf a \wedge \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \vee \underline{\mathbf b}$$
:$$\underline{\mathbf a \vee \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \wedge \underline{\mathbf b}$$
== General Properties ==
The following table lists several general properties of the wedge product and antiwedge product.
{| class="wikitable"
! Property !! Description
|-
| style="padding: 12px;" | $$\mathbf a \wedge \mathbf b = -\mathbf b \wedge \mathbf a$$
| style="padding: 12px;" | Anticommutativity of the wedge product for vectors $$\mathbf a$$ and $$\mathbf b$$.
|-
| style="padding: 12px;" | $$\mathbf a \vee \mathbf b = -\mathbf b \vee \mathbf a$$
| style="padding: 12px;" | Anticommutativity of the antiwedge product for antivectors $$\mathbf a$$ and $$\mathbf b$$.
|-
| style="padding: 12px;" | $$(\mathbf a \wedge \mathbf b) \wedge \mathbf c = \mathbf a \wedge (\mathbf b \wedge \mathbf c)$$
| style="padding: 12px;" | Associative law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$(\mathbf a \vee \mathbf b) \vee \mathbf c = \mathbf a \vee (\mathbf b \vee \mathbf c)$$
| style="padding: 12px;" | Associative law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$\mathbf a \wedge (\mathbf b + \mathbf c) = \mathbf a \wedge \mathbf b + \mathbf a \wedge \mathbf c$$
| style="padding: 12px;" | Distributive law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$\mathbf a \vee (\mathbf b + \mathbf c) = \mathbf a \vee \mathbf b + \mathbf a \vee \mathbf c$$
| style="padding: 12px;" | Distributive law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$(t\mathbf a) \wedge \mathbf b = \mathbf a \wedge (t\mathbf b) = t(\mathbf a \wedge \mathbf b)$$
| style="padding: 12px;" | Scalar factorization of the wedge product.
|-
| style="padding: 12px;" | $$(t\mathbf a) \vee \mathbf b = \mathbf a \vee (t\mathbf b) = t(\mathbf a \vee \mathbf b)$$
| style="padding: 12px;" | Scalar factorization of the antiwedge product.
|-
| style="padding: 12px;" | $$s \wedge \mathbf a = \mathbf a \wedge s = s\mathbf a$$
| style="padding: 12px;" | Wedge product of a [[scalar]] $$s$$ and any basis element $$\mathbf a$$.
|-
| style="padding: 12px;" | $$s \vee \mathbf a = \mathbf a \vee s = s\mathbf a$$
| style="padding: 12px;" | Antiwedge product of an [[antiscalar]] $$s$$ and any basis element $$\mathbf a$$.
|-
| style="padding: 12px;" | $$s \wedge t = st$$
| style="padding: 12px;" | Wedge product of [[scalars]] $$s$$ and $$t$$.
|-
| style="padding: 12px;" | $$s \vee t = st$$
| style="padding: 12px;" | Antiwedge product of [[antiscalars]] $$s$$ and $$t$$.
|}
== See Also ==
* [[Geometric products]]
* [[Dot products]]
* [[Complements]]
b5d37eb93c75e4fc285828200e731694d77dd981
282
257
2024-01-23T02:10:22Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct.
The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\mathbf a$$ and $$\mathbf b$$ are parallel, then their exterior product is zero. (Compare this to the [[dot product]], which is zero whenever $$\mathbf a$$ and $$\mathbf b$$ are orthogonal.)
== Exterior Product ==
The exterior product is widely known as the ''wedge product'' because it is written with an upward pointing wedge. The exterior product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \wedge \mathbf b$$ and read "$$\mathbf a$$ wedge $$\mathbf b$$". Grassmann called this the progressive combinatorial product.
The defining characteristic of the wedge product is that multiplying any vector $$\mathbf v$$ by itself produces zero: $$\mathbf v \wedge \mathbf v = 0$$. This implies that the wedge product is anticommutative for vectors, so we always have
:$$\mathbf v \wedge \mathbf w = -\mathbf w \wedge \mathbf v$$
for vectors $$\mathbf v$$ and $$\mathbf w$$. The wedge product is not anticommutative in general, however. For general basis elements $$\mathbf a$$ and $$\mathbf b$$, reversing the order of the operands satisfies the relationship
:$$\mathbf a \wedge \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\operatorname{gr}(\mathbf b)} \mathbf b \wedge \mathbf a$$ .
The wedge product adds the [[grades]] of its operands, so we have
:$$\operatorname{gr}(\mathbf a \wedge \mathbf b) = \operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)$$ .
The following Cayley table shows the exterior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:WedgeProduct.svg|720px]]
== Exterior Antiproduct ==
The exterior antiproduct is a dual to the exterior product. It is written with a downward pointing wedge and thus called the ''antiwedge product''. The exterior antiproduct $$\mathbf a \vee \mathbf b$$ is read "$$\mathbf a$$ antiwedge $$\mathbf b$$". Grassmann called this the regressive combinatorial product.
Whereas the wedge product combines the full dimensions of its operands, the antiwedge product combines the empty dimensions of its operands. The antiwedge product adds the [[antigrades]] of its operands, so we have
:$$\operatorname{ag}(\mathbf a \vee \mathbf b) = \operatorname{ag}(\mathbf a) + \operatorname{ag}(\mathbf b)$$ .
The following Cayley table shows the exterior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:AntiwedgeProduct.svg|720px]]
== De Morgan Laws ==
There are many possible exterior products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.
:$$\overline{\mathbf a \wedge \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \vee \overline{\mathbf b}$$
:$$\overline{\mathbf a \vee \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \wedge \overline{\mathbf b}$$
:$$\underline{\mathbf a \wedge \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \vee \underline{\mathbf b}$$
:$$\underline{\mathbf a \vee \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \wedge \underline{\mathbf b}$$
== General Properties ==
The following table lists several general properties of the wedge product and antiwedge product.
{| class="wikitable"
! Property !! Description
|-
| style="padding: 12px;" | $$\mathbf a \wedge \mathbf b = -\mathbf b \wedge \mathbf a$$
| style="padding: 12px;" | Anticommutativity of the wedge product for vectors $$\mathbf a$$ and $$\mathbf b$$.
|-
| style="padding: 12px;" | $$\mathbf a \vee \mathbf b = -\mathbf b \vee \mathbf a$$
| style="padding: 12px;" | Anticommutativity of the antiwedge product for antivectors $$\mathbf a$$ and $$\mathbf b$$.
|-
| style="padding: 12px;" | $$(\mathbf a \wedge \mathbf b) \wedge \mathbf c = \mathbf a \wedge (\mathbf b \wedge \mathbf c)$$
| style="padding: 12px;" | Associative law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$(\mathbf a \vee \mathbf b) \vee \mathbf c = \mathbf a \vee (\mathbf b \vee \mathbf c)$$
| style="padding: 12px;" | Associative law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$\mathbf a \wedge (\mathbf b + \mathbf c) = \mathbf a \wedge \mathbf b + \mathbf a \wedge \mathbf c$$
| style="padding: 12px;" | Distributive law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$\mathbf a \vee (\mathbf b + \mathbf c) = \mathbf a \vee \mathbf b + \mathbf a \vee \mathbf c$$
| style="padding: 12px;" | Distributive law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$(t\mathbf a) \wedge \mathbf b = \mathbf a \wedge (t\mathbf b) = t(\mathbf a \wedge \mathbf b)$$
| style="padding: 12px;" | Scalar factorization of the wedge product.
|-
| style="padding: 12px;" | $$(t\mathbf a) \vee \mathbf b = \mathbf a \vee (t\mathbf b) = t(\mathbf a \vee \mathbf b)$$
| style="padding: 12px;" | Scalar factorization of the antiwedge product.
|-
| style="padding: 12px;" | $$s \wedge \mathbf a = \mathbf a \wedge s = s\mathbf a$$
| style="padding: 12px;" | Wedge product of a [[scalar]] $$s$$ and any basis element $$\mathbf a$$.
|-
| style="padding: 12px;" | $$s \vee \mathbf a = \mathbf a \vee s = s\mathbf a$$
| style="padding: 12px;" | Antiwedge product of an [[antiscalar]] $$s$$ and any basis element $$\mathbf a$$.
|-
| style="padding: 12px;" | $$s \wedge t = st$$
| style="padding: 12px;" | Wedge product of [[scalars]] $$s$$ and $$t$$.
|-
| style="padding: 12px;" | $$s \vee t = st$$
| style="padding: 12px;" | Antiwedge product of [[antiscalars]] $$s$$ and $$t$$.
|}
== See Also ==
* [[Geometric products]]
* [[Dot products]]
* [[Complements]]
6b5584771d86941f2fe4d4e3a2e84f9b6f2c59d3
File:GeometricProduct.svg
6
74
258
193
2024-01-21T21:54:01Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:GeometricProduct.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
276
258
2024-01-23T02:07:34Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:GeometricProduct.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:GeometricAntiproduct.svg
6
75
259
194
2024-01-21T21:54:21Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:GeometricAntiproduct.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
277
259
2024-01-23T02:08:01Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:GeometricAntiproduct.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Geometric products
0
76
260
195
2024-01-21T21:54:31Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct.
== Geometric Product ==
The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$".
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to −'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$
:$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
Cells colored yellow correspond to the contribution from the [[wedge product]].
<span style="font-size: 150%;">Geometric Product $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$</span>
[[Image:GeometricProduct.svg|720px]]
== Geometric Antiproduct ==
The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$".
The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows.
:$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$
:$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$.
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$.
Cells colored yellow correspond to the contribution from the [[antiwedge product]].
<span style="font-size: 150%;">Geometric Antiproduct $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$</span>
[[Image:GeometricAntiproduct.svg|720px]]
== De Morgan Laws ==
There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$
== See Also ==
* [[Wedge products]]
* [[Dot products]]
* [[Complements]]
35b0cd3a2ca8b68172df1ee6a555e30136ea1eef
261
260
2024-01-21T21:55:08Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct.
== Geometric Product ==
The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$".
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to −'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$
:$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
Cells highlighted in green correspond to the contribution from the [[wedge product]].
<span style="font-size: 150%;">Geometric Product $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$</span>
[[Image:GeometricProduct.svg|720px]]
== Geometric Antiproduct ==
The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$".
The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows.
:$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$
:$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$.
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$.
Cells highlighted in green correspond to the contribution from the [[antiwedge product]].
<span style="font-size: 150%;">Geometric Antiproduct $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$</span>
[[Image:GeometricAntiproduct.svg|720px]]
== De Morgan Laws ==
There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$
== See Also ==
* [[Wedge products]]
* [[Dot products]]
* [[Complements]]
ecc7bf7a28f0f26a79acf2c59ea5a4834c7c11eb
278
261
2024-01-23T02:08:21Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct.
== Geometric Product ==
The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$".
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to −'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$
:$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
Cells highlighted in green correspond to the contribution from the [[wedge product]].
[[Image:GeometricProduct.svg|720px]]
== Geometric Antiproduct ==
The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$".
The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows.
:$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$
:$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$.
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$.
Cells highlighted in green correspond to the contribution from the [[antiwedge product]].
[[Image:GeometricAntiproduct.svg|720px]]
== De Morgan Laws ==
There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$
== See Also ==
* [[Wedge products]]
* [[Dot products]]
* [[Complements]]
c1c05f2a79f6cbf8903ee06b29158991cba416ff
File:Dots.svg
6
157
262
2024-01-21T21:59:08Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Constractions.svg
6
158
264
2024-01-22T07:35:53Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Expansions.svg
6
159
265
2024-01-22T07:36:08Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Interior products
0
70
266
72
2024-01-22T07:56:36Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object.
== Contractions ==
The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The contractions have the effect of subtracting grades so that
:$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$
and
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode{x25CB}} \mathbf b) \vee \mathbf 1$$ .
The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$.
[[Image:Constractions.svg|720px]]
== Expansions ==
The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The expansions have the effect of subtracting antigrades so that
:$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .
In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$
and
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode{x25CF}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ .
The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$.
[[Image:Expansions.svg|720px]]
== See Also ==
* [[Projections]]
1a82bb2b75365b3466924db71ff955bcba51fcf5
Weight expansion
0
160
267
2024-01-22T07:57:19Z
Eric Lengyel
1
Created page with "#REDIRECTION [[Interior products]]"
wikitext
text/x-wiki
#REDIRECTION [[Interior products]]
0d596946a23ad1497e9fa8b22629a02b5af6ca7c
Bulk expansion
0
161
268
2024-01-22T07:57:28Z
Eric Lengyel
1
Created page with "#REDIRECTION [[Interior products]]"
wikitext
text/x-wiki
#REDIRECTION [[Interior products]]
0d596946a23ad1497e9fa8b22629a02b5af6ca7c
Bulk contraction
0
162
269
2024-01-22T07:57:35Z
Eric Lengyel
1
Created page with "#REDIRECTION [[Interior products]]"
wikitext
text/x-wiki
#REDIRECTION [[Interior products]]
0d596946a23ad1497e9fa8b22629a02b5af6ca7c
Weight contraction
0
163
270
2024-01-22T07:57:48Z
Eric Lengyel
1
Created page with "#REDIRECTION [[Interior products]]"
wikitext
text/x-wiki
#REDIRECTION [[Interior products]]
0d596946a23ad1497e9fa8b22629a02b5af6ca7c
File:Reverses.svg
6
57
272
59
2024-01-22T08:00:05Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Reverses.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Complements.svg
6
42
273
231
2024-01-22T08:01:07Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Complements.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Complements
0
41
274
232
2024-01-22T08:01:26Z
Eric Lengyel
1
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation
:$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation
:$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ .
This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$.
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$
:$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|720px]]
== See Also ==
* [[Duality]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
9b78a59c59fd78a8a30a527955989e4fcb76a0da
File:GeometricProduct201.svg
6
22
283
196
2024-01-23T02:11:34Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:GeometricProduct201.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:GeometricAntiproduct201.svg
6
23
284
197
2024-01-23T02:11:59Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:GeometricAntiproduct201.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Rotation
0
30
287
220
2024-02-07T23:37:56Z
Eric Lengyel
1
wikitext
text/x-wiki
A ''rotation'' is a proper isometry of Euclidean space.
For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]]
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathbf R$$ differs from a general [[motor]] only in that it is always the case that $$R_{mw} = 0$$. The line $$\boldsymbol l$$ and its [[weight dual]] $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ are invariant under this operation. The line $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ lies in the [[horizon]] in directions perpendicular to the direction of $$\boldsymbol l$$.
== Calculation ==
The exact rotation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)p_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})p_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})p_z + 2(R_{vy}R_{mz} - R_{vz}R_{my} + R_{vw}R_{mx})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)p_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})p_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})p_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} + R_{vw}R_{my})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)p_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})p_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})p_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} + R_{vw}R_{mz})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)l_{vx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{vy} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)l_{vy} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{vz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)l_{vz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{vx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(R_{vy}R_{my} + R_{vz}R_{mz})l_{vx} + 2(R_{vy}R_{mx} + R_{vx}R_{my} - R_{vw}R_{mz})l_{vy} + 2(R_{vz}R_{mx} + R_{vx}R_{mz} + R_{vw}R_{my})l_{vz} + (1 - 2R_{vy}^2 - 2R_{vz}^2)l_{mx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{my} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(R_{vz}R_{mz} + R_{vx}R_{mx})l_{vy} + 2(R_{vz}R_{my} + R_{vy}R_{mz} - R_{vw}R_{mx})l_{vz} + 2(R_{vx}R_{my} + R_{vy}R_{mx} + R_{vw}R_{mz})l_{vx} + (1 - 2R_{vz}^2 - 2R_{vx}^2)l_{my} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{mz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(R_{vx}R_{mx} + R_{vy}R_{my})l_{vz} + 2(R_{vx}R_{mz} + R_{vz}R_{mx} - R_{vw}R_{my})l_{vx} + 2(R_{vy}R_{mz} + R_{vz}R_{my} + R_{vw}R_{mx})l_{vy} + (1 - 2R_{vx}^2 - 2R_{vy}^2)l_{mz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{mx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)g_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})g_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)g_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})g_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)g_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})g_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(R_{vy}R_{mz} - R_{vz}R_{my} - R_{vw}R_{mx})g_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} - R_{vw}R_{my})g_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} - R_{vw}R_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Reciprocal rotation]]
* [[Translation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
12e843d68123d88063207a5e4d18ca004bc16fa5
Translation
0
31
288
221
2024-02-08T00:52:02Z
Eric Lengyel
1
wikitext
text/x-wiki
__NOTOC__
A ''translation'' is a proper isometry of Euclidean space.
The specific kind of [[motor]]
:$$\mathbf T = {\tau_x \mathbf e_{23} + \tau_y \mathbf e_{31} + \tau_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$
performs a translation by twice the displacement vector $$\boldsymbol \tau = (\tau_x, \tau_y, \tau_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\boldsymbol \tau$$.
== Exponential Form ==
A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as
:$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{1}{2}\delta \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$
== Matrix Form ==
When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix
:$$\begin{bmatrix}
1 & 0 & 0 & \tau_x \\
0 & 1 & 0 & \tau_y \\
0 & 0 & 1 & \tau_z \\
0 & 0 & 0 & 1 \\
\end{bmatrix}$$ .
== Translation to Origin ==
A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator
:$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ .
== Calculation ==
The exact translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2\tau_xp_w)\mathbf e_1 + (p_y + 2\tau_yp_w)\mathbf e_2 + (p_z + 2\tau_zp_w)\mathbf e_3 + p_w\mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2\tau_y l_{vz} - 2\tau_z l_{vy})\mathbf e_{23} + (l_{my} + 2\tau_z l_{vx} - 2\tau_x l_{vz})\mathbf e_{31} + (l_{mz} + 2\tau_x l_{vy} - 2\tau_y l_{vx})\mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2\tau_xg_x - 2\tau_yg_y - 2\tau_zg_z) \mathbf e_{321}$$
|}
== See Also ==
* [[Reciprocal translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
4567cccfe5ed9a00f653c7a29f3b32ced32ec965
Geometric constraint
0
40
291
238
2024-02-09T00:59:08Z
Eric Lengyel
1
Eric Lengyel moved page [[Geometric property]] to [[Geometric constraint]] without leaving a redirect
wikitext
text/x-wiki
An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric property'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is,
:$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$
and
:$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ .
The set of all elements possessing the geometric property is closed under both the [[geometric product]] and [[geometric antiproduct]].
The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ to possess the geometric property. Points and planes do not have any requirements—they all possess the geometric property.
{| class="wikitable"
! Type !! Definition !! Requirement
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$xy = 0$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$
|}
== See Also ==
* [[Geometric norm]]
b73657111716cab3a28893514c3d4a6ad23b8239
293
291
2024-02-09T01:00:39Z
Eric Lengyel
1
wikitext
text/x-wiki
An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric constraint'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is,
:$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$
and
:$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ .
The set of all elements satisfying the geometric constraint is closed under both the [[geometric product]] and [[geometric antiproduct]].
The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ due to the geometric constraint. Points and planes do not have any requirements—they have no constraints.
{| class="wikitable"
! Type !! Definition !! Requirement
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$xy = 0$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$
|}
== See Also ==
* [[Geometric norm]]
2ef572f8fde95ca67accecc5154b10ca46928a44
Geometric norm
0
38
294
237
2024-02-09T01:00:58Z
Eric Lengyel
1
/* See Also */
wikitext
text/x-wiki
The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm.
For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator.
== Bulk Norm ==
The ''bulk norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf u$$ with itself:
:$$\left\Vert\mathbf u\right\Vert_\unicode{x25CF} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}$$ .
An element that has a bulk norm of '''1''' is said to be ''bulk normalized''.
The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$
|}
== Weight Norm ==
The ''weight norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf u$$ with itself:
:$$\left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ .
(Note that the square root in this case is taken with respect to the geometric antiproduct.)
An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''.
The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$
|}
== Geometric Norm ==
The bulk norm and weight norm are summed to construct the ''geometric norm'' given by
:$$\left\Vert\mathbf u\right\Vert = \left\Vert\mathbf u\right\Vert_\unicode{x25CF} + \left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u} + \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ .
This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because
:$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ .
Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf u$$ is given by
:$$\widehat{\left\Vert\mathbf u\right\Vert} = \dfrac{\left\Vert\mathbf u\right\Vert}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf u\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}} + {\large\unicode{x1D7D9}}$$ .
The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$.
Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== See Also ==
* [[Geometric constraint]]
7067c298285bde6497183995bae24816695742f2
Line
0
7
295
9
2024-02-09T01:01:26Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ .
The components $$(l_{vx}, l_{vy}, l_{vz})$$ correspond to the line's direction, and the components $$(l_{mx}, l_{my}, l_{mz})$$ correspond to the line's moment. (These are equivalent to the six Plücker coordinates of a line.) To satisfy the [[geometric constraint]], the components of $$\boldsymbol l$$ must satisfy the equation
:$$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ ,
which means that, when regarded as vectors, the direction and moment of a line are perpendicular.
The [[bulk]] of a line is given by its $$mx$$, $$my$$, and $$mz$$ coordinates, and the [[weight]] of a line is given by its $$vx$$, $$vy$$, and $$vz$$ coordinates. A line is [[unitized]] when $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$. The [[attitude]] of a line is the vector $$l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ corresponding to its direction.
When used as an operator in the sandwich with the [[geometric antiproduct]], a line is a specific kind of [[motor]] that performs a 180-degree rotation about itself.
<br clear="right" />
== Lines at Infinity ==
[[Image:line_infinity.svg|400px|thumb|right|'''Figure 2.''' A line at infinity consists of all points at infinity in directions perpendicular to the moment $$\mathbf m$$.]]
If the weight of a line is zero (i.e., its $$vx$$, $$vy$$, and $$vz$$ coordinates are all zero), then the line is contained in the horizon infinitely far away in all directions perpendicular to its moment $$\mathbf m = (l_{mx}, l_{my}, l_{mz})$$, regarded as a vector, as shown in Figure 2. Such a line cannot be unitized, but it can be normalized by dividing by its [[bulk norm]].
When the moment $$\mathbf m$$ is regarded as a bivector, a line at infinity can be thought of as all directions $$\mathbf v$$ parallel to the moment, which satisfy $$\mathbf m \wedge \mathbf v = 0$$.
<br clear="right" />
== Skew Lines ==
[[Image:skew_lines.svg|400px|thumb|right|'''Figure 3.''' The line $$\mathbf j$$ connecting skew lines.]]
Given two skew lines $$\boldsymbol l$$ and $$\mathbf k$$, as shown in Figure 3, a third line $$\mathbf j$$ that contains a point on each of the lines $$\boldsymbol l$$ and $$\mathbf k$$ is given by the axis of the [[motor]] $$\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}$$. The line $$\mathbf j$$ can be found by first calculating the line
:$$\mathbf i = [\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_- = (l_{vy} k_{vz} - l_{vz} k_{vy})\mathbf e_{41} + (l_{vz} k_{vx} - l_{vx} k_{vz})\mathbf e_{42} + (l_{vx} k_{vy} - l_{vy} k_{vx})\mathbf e_{43} + (l_{vy} k_{mz} - l_{vz} k_{my} + l_{my} k_{vz} - l_{mz} k_{vy})\mathbf e_{23} + (l_{vz} k_{mx} - l_{vx} k_{mz} + l_{mz} k_{vx} - l_{mx} k_{vz})\mathbf e_{31} + (l_{vx} k_{my} - l_{vy} k_{mx} + l_{mx} k_{vy} - l_{my} k_{vx})\mathbf e_{12}$$
and then orthogonalizing its direction and moment to obtain
:$$\mathbf j = i_{vx} \mathbf e_{41} + i_{vy} \mathbf e_{42} + i_{vz} \mathbf e_{43} + (i_{mx} - s i_{vx})\mathbf e_{23} + (i_{my} - s i_{vy})\mathbf e_{31} + (i_{mz} - s i_{vz})\mathbf e_{12}$$ ,
where
:$$s = \dfrac{i_{vx}i_{mx} + i_{vy}i_{my} + i_{vz}i_{mz}}{i_{vx}^2 + i_{vy}^2 + i_{vz}^2}$$ .
If $$l_{vx}k_{vx} + l_{vy}k_{vy} + l_{vz}k_{vz} = 0$$, meaning that the directions of the two lines are perpendicular, then $$\mathbf j = \mathbf i$$.
The direction of $$\mathbf j$$ is perpendicular to the directions of $$\boldsymbol l$$ and $$\mathbf k$$, and it contains the closest points of approach between $$\boldsymbol l$$ and $$\mathbf k$$. The points themselves can then be found by calculating $$(\mathbf j \wedge \operatorname{att}(\boldsymbol l)) \vee \mathbf k$$ and $$(\mathbf j \wedge \operatorname{att}(\mathbf k)) \vee \boldsymbol l$$, where $$\operatorname{att}$$ is the [[attitude]] function.
<br clear="right" />
== See Also ==
* [[Point]]
* [[Plane]]
6251f6ff4a6d14c06715178fd5f29a1c32228d6c
Motor
0
3
296
172
2024-02-09T01:01:44Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]]
A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ .
To satisfy the [[geometric constraint]], the components of $$\mathbf Q$$ must satisfy the equation
:$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ .
Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions.
An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]].
== Simple Motors ==
If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line.
In the case of a pure translation, the motor $$\mathbf T$$ is given by
:$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ ,
and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$.
In the case of a pure rotation, the motor $$\mathbf R$$ is given by
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$.
== Motors Built from Geometry ==
Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table.
{| class="wikitable"
! Motor|| Description
|-
| style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$.
$$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
$$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}
=\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\
+\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\
+\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\
+\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$.
$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$.
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
|}
== Norm ==
The [[bulk norm]] of a motor $$\mathbf Q$$ is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ .
The [[geometric norm]] of a motor $$\mathbf Q$$ is thus
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$.
== Exponential Form ==
A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ .
This expands to
:$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ ,
and replacing the [[line]] $$\boldsymbol l$$ with its components gives us
:$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ .
A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ .
The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation.
== Logarithm ==
Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations
:$$Q_{mw} = -d\sin\phi$$
:$$Q_{vw} = \cos\phi$$ .
Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then,
:$$d = -\dfrac{Q_{mw}}{s}$$
:$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ .
If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required.
The components of $$\boldsymbol l$$ are then given by
:$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$
:$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ .
In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$.
== Square Root ==
The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case.
Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ ,
where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ .
Applying several more trigonometric identities, we now observe
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ .
The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ ,
which means that
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ .
The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields
:$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ .
The square root of a general motor $$\mathbf Q$$ is thus given by
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ .
If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ .
== Factorization ==
Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating
:$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ .
The motor $$\mathbf T$$ is then given by
:$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ .
The original motor $$\mathbf Q$$ can now be expressed as
:$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ ,
where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors.
== Conversion from Motor to Matrix ==
Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices
:$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Motor ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant +1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$
:$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$
:$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$
:$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$
:$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$
:$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$
:$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$
:$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$
:$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$
If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate
:$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ ,
where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by
$$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$
$$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$
$$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$
$$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ .
== Motor Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)p_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})p_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})p_z + 2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vw}Q_{mx} - Q_{vx}Q_{mw})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2Q_{vz}^2 -2Q_{vx}^2))p_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})p_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})p_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vw}Q_{my} - Q_{vy}Q_{mw})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2))p_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})p_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})p_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vw}Q_{mz} - Q_{vz}Q_{mw})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{vx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{vy} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{vy} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{vz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{vz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{vx} + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(Q_{vy}Q_{my} + Q_{vz}Q_{mz})l_{vx} + 2(Q_{vy}Q_{mx} + Q_{vx}Q_{my} - Q_{vz}Q_{mw} - Q_{vw}Q_{mz})l_{vy} + 2(Q_{vz}Q_{mx} + Q_{vx}Q_{mz} + Q_{vy}Q_{mw} + Q_{vw}Q_{my})l_{vz} + (1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{mx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{my} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(Q_{vz}Q_{mz} + Q_{vx}Q_{mx})l_{vy} + 2(Q_{vz}Q_{my} + Q_{vy}Q_{mz} - Q_{vx}Q_{mw} - Q_{vw}Q_{mx})l_{vz} + 2(Q_{vx}Q_{my} + Q_{vy}Q_{mx} + Q_{vz}Q_{mw} + Q_{vw}Q_{mz})l_{vx} + (1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{my} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{mz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(Q_{vx}Q_{mx} + Q_{vy}Q_{my})l_{vz} + 2(Q_{vx}Q_{mz} + Q_{vz}Q_{mx} - Q_{vy}Q_{mw} - Q_{vw}Q_{my})l_{vx} + 2(Q_{vy}Q_{mz} + Q_{vz}Q_{my} + Q_{vx}Q_{mw} + Q_{vw}Q_{mx})l_{vy} + (1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{mz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{mx} + 2(Q_{vy}Q_{vz} + 2Q_{vx}Q_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)g_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})g_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)g_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})g_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)g_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})g_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vx}Q_{mw} - Q_{vw}Q_{mx})g_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vy}Q_{mw} - Q_{vw}Q_{my})g_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vz}Q_{mw} - Q_{vw}Q_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Flector]]
* [[Translation]]
* [[Rotation]]
264ed79ff2162067af36347a70e79f5081c2b77e
311
296
2024-04-08T05:01:32Z
Eric Lengyel
1
/* Motor Transformations */
wikitext
text/x-wiki
[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]]
A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ .
To satisfy the [[geometric constraint]], the components of $$\mathbf Q$$ must satisfy the equation
:$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ .
Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions.
An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]].
== Simple Motors ==
If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line.
In the case of a pure translation, the motor $$\mathbf T$$ is given by
:$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ ,
and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$.
In the case of a pure rotation, the motor $$\mathbf R$$ is given by
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$.
== Motors Built from Geometry ==
Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table.
{| class="wikitable"
! Motor|| Description
|-
| style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$.
$$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
$$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}
=\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\
+\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\
+\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\
+\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$.
$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$.
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
|}
== Norm ==
The [[bulk norm]] of a motor $$\mathbf Q$$ is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ .
The [[geometric norm]] of a motor $$\mathbf Q$$ is thus
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$.
== Exponential Form ==
A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ .
This expands to
:$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ ,
and replacing the [[line]] $$\boldsymbol l$$ with its components gives us
:$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ .
A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ .
The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation.
== Logarithm ==
Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations
:$$Q_{mw} = -d\sin\phi$$
:$$Q_{vw} = \cos\phi$$ .
Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then,
:$$d = -\dfrac{Q_{mw}}{s}$$
:$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ .
If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required.
The components of $$\boldsymbol l$$ are then given by
:$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$
:$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ .
In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$.
== Square Root ==
The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case.
Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ ,
where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ .
Applying several more trigonometric identities, we now observe
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ .
The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ ,
which means that
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ .
The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields
:$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ .
The square root of a general motor $$\mathbf Q$$ is thus given by
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ .
If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ .
== Factorization ==
Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating
:$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ .
The motor $$\mathbf T$$ is then given by
:$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ .
The original motor $$\mathbf Q$$ can now be expressed as
:$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ ,
where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors.
== Conversion from Motor to Matrix ==
Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices
:$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Motor ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant +1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$
:$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$
:$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$
:$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$
:$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$
:$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$
:$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$
:$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$
:$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$
If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate
:$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ ,
where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by
$$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$
$$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$
$$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$
$$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ .
== Motor Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table, where $$\mathbf v = (Q_{vx}, Q_{vy}, Q_{vz})$$ and $$\mathbf m = (Q_{mx}, Q_{my}, Q_{mz})$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$
$$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a - Q_{mw}p_w\mathbf v)$$
$$p'_w = p_w$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$
$$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$
$$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$
$$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(Q_{mw}\mathbf a + Q_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$
$$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz} + Q_{mw}\mathbf g_{xyz}) \cdot \mathbf v - Q_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$
|}
== See Also ==
* [[Flector]]
* [[Translation]]
* [[Rotation]]
6c8179398acc09d4afdb8cebb0e4841e35ce5c8e
Flector
0
44
297
46
2024-02-09T01:02:05Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]]
A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotoreflections. The name flector is a portmanteau of ''reflection operator''. Flectors cannot perform proper isometries that do not include [[reflections]]; those are instead performed by operators called [[motors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form
:$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ ,
which is the sum of a [[point]] $$\mathbf p$$ and a [[plane]] $$\mathbf g$$. To satisfy the [[geometric constraint]], the components of $$\mathbf F$$ must satisfy the equation
:$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ ,
and this means that the [[point]] $$\mathbf p$$ must lie in the [[plane]] $$\mathbf g$$.
An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all [[motors]] in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing [[inversion]] through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$.
== Norm ==
The [[bulk norm]] of a flector $$\mathbf F$$ is given by
:$$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{\mathbf F \mathbin{\unicode{x25CF}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = \sqrt{\mathbf F \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ .
The [[geometric norm]] of a flector $$\mathbf F$$ is thus
:$$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A flector is [[unitized]] when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$.
== Trigonometric Form ==
A general flector $$\mathbf F$$ can be expressed in terms of a [[unitized]] [[point]] $$\mathbf p$$ and a [[unitized]] [[plane]] $$\mathbf g$$ as
:$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ .
This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane.
== Factorization ==
Any [[unitized]] flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple [[motor]] $$\mathbf Q$$ and a [[plane]] by calculating
:$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ ,
where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by
:$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ ,
which is always unitized. The original flector $$\mathbf F$$ can now be expressed as
:$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ .
== Conversion from Flector to Matrix ==
Given a specific [[Unitization | unitized]] flector $$\mathbf G$$, define the matrices
:$$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Flector ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant −1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$
:$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$
:$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$
:$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$
:$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$
:$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$
:$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$
:$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$
:$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$
If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate
:$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ ,
where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by
$$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$
$$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$
$$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$
$$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ .
== Flector Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] flector $$\mathbf F$$ as shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(2F_{gy}^2 + 2F_{gz}^2 - 1)q_x + 2(F_{gz}F_{pw} - F_{gx}F_{gy})q_y - 2(F_{gy}F_{pw} + F_{gz}F_{gx})q_z + 2(F_{gy}F_{pz} - F_{gz}F_{py} + F_{px}F_{pw} - F_{gx}F_{gw})q_w\right]\mathbf e_1 \\ +\, &\left[(2F_{gz}^2 + 2F_{gx}^2 - 1)q_y + 2(F_{gx}F_{pw} - F_{gy}F_{gz})q_z - 2(F_{gz}F_{pw} + F_{gx}F_{gy})q_x + 2(F_{gz}F_{px} - F_{gx}F_{pz} + F_{py}F_{pw} - F_{gy}F_{gw})q_w\right]\mathbf e_2 \\ +\, &\left[(2F_{gx}^2 + 2F_{gy}^2 - 1)q_z + 2(F_{gy}F_{pw} - F_{gz}F_{gx})q_x - 2(F_{gx}F_{pw} + F_{gy}F_{gz})q_y + 2(F_{gx}F_{py} - F_{gy}F_{px} + F_{pz}F_{pw} - F_{gz}F_{gw})q_w\right]\mathbf e_3 \\ +\, &q_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} + 2(F_{gx}F_{gy} - F_{gz}F_{pw})l_{vy} + 2(F_{gz}F_{gx} + F_{gy}F_{pw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} + 2(F_{gy}F_{gz} - F_{gx}F_{pw})l_{vz} + 2(F_{gx}F_{gy} + F_{gz}F_{pw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} + 2(F_{gz}F_{gx} - F_{gy}F_{pw})l_{vx} + 2(F_{gy}F_{gz} + F_{gx}F_{pw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(F_{gy}F_{py} + F_{gz}F_{pz})l_{vx} + 2(F_{gx}F_{py} + F_{gy}F_{px})l_{vy} + 2(F_{gx}F_{pz} + F_{gz}F_{px} + F_{gy}F_{gw} + F_{py}F_{pw})l_{vz} + (2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} + 2(F_{gz}F_{pw} - F_{gx}F_{gy})l_{my} - 2(F_{gy}F_{pw} + F_{gz}F_{gx})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(F_{gz}F_{pz} + F_{gx}F_{px})l_{vy} + 2(F_{gy}F_{pz} + F_{gz}F_{py})l_{vz} + 2(F_{gy}F_{px} + F_{gx}F_{py} + F_{gz}F_{gw} + F_{pz}F_{pw})l_{vx} + (2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} + 2(F_{gx}F_{pw} - F_{gy}F_{gz})l_{mz} - 2(F_{gz}F_{pw} + F_{gx}F_{gy})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(F_{gx}F_{px} + F_{gy}F_{py})l_{vz} + 2(F_{gz}F_{px} + F_{gx}F_{pz})l_{vx} + 2(F_{gz}F_{py} + F_{gy}F_{pz} + F_{gx}F_{gw} + F_{px}F_{pw})l_{vy} + (2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} + 2(F_{gy}F_{pw} - F_{gz}F_{gx})l_{mx} - 2(F_{gx}F_{pw} + F_{gy}F_{gz})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)h_x + 2(F_{gx}F_{gy} - F_{gz}F_{pw})h_y + 2(F_{gz}F_{gx} + F_{gy}F_{pw})h_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)h_y + 2(F_{gy}F_{gz} - F_{gx}F_{pw})h_z + 2(F_{gx}F_{gy} + F_{gz}F_{pw})h_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)h_z + 2(F_{gz}F_{gx} - F_{gy}F_{pw})h_x + 2(F_{gy}F_{gz} + F_{gx}F_{pw})h_y\right]\mathbf e_{412} \\ +\, &\left[2(F_{gy}F_{pz} - F_{gz}F_{py} + F_{gx}F_{gw} - F_{px}F_{pw})h_x + 2(F_{gz}F_{px} - F_{gx}F_{pz} + F_{gy}F_{gw} - F_{py}F_{pw})h_y + 2(F_{gx}F_{py} - F_{gy}F_{px} + F_{gz}F_{gw} - F_{pz}F_{pw})h_z - h_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Motor]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
131435136a84913c11d4265df03b8cb0fee35f84
312
297
2024-04-08T05:12:10Z
Eric Lengyel
1
/* Flector Transformations */
wikitext
text/x-wiki
[[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]]
A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotoreflections. The name flector is a portmanteau of ''reflection operator''. Flectors cannot perform proper isometries that do not include [[reflections]]; those are instead performed by operators called [[motors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form
:$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ ,
which is the sum of a [[point]] $$\mathbf p$$ and a [[plane]] $$\mathbf g$$. To satisfy the [[geometric constraint]], the components of $$\mathbf F$$ must satisfy the equation
:$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ ,
and this means that the [[point]] $$\mathbf p$$ must lie in the [[plane]] $$\mathbf g$$.
An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all [[motors]] in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing [[inversion]] through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$.
== Norm ==
The [[bulk norm]] of a flector $$\mathbf F$$ is given by
:$$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{\mathbf F \mathbin{\unicode{x25CF}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = \sqrt{\mathbf F \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ .
The [[geometric norm]] of a flector $$\mathbf F$$ is thus
:$$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A flector is [[unitized]] when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$.
== Trigonometric Form ==
A general flector $$\mathbf F$$ can be expressed in terms of a [[unitized]] [[point]] $$\mathbf p$$ and a [[unitized]] [[plane]] $$\mathbf g$$ as
:$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ .
This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane.
== Factorization ==
Any [[unitized]] flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple [[motor]] $$\mathbf Q$$ and a [[plane]] by calculating
:$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ ,
where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by
:$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ ,
which is always unitized. The original flector $$\mathbf F$$ can now be expressed as
:$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ .
== Conversion from Flector to Matrix ==
Given a specific [[Unitization | unitized]] flector $$\mathbf G$$, define the matrices
:$$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Flector ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant −1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$
:$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$
:$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$
:$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$
:$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$
:$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$
:$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$
:$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$
:$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$
If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate
:$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ ,
where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by
$$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$
$$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$
$$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$
$$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ .
== Flector Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] flector $$\mathbf F$$ as shown in the following table, where $$\mathbf p = (F_{px}, F_{py}, F_{pz})$$ and $$\mathbf g = (F_{gx}, F_{gy}, F_{gz})$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf q_{xyz} - q_w\mathbf p$$
$$\mathbf q'_{xyz} = \mathbf q_{xyz} + 2(F_{pw}\mathbf a + \mathbf g \times \mathbf a + F_{gw}q_w\mathbf g)$$
$$q'_w = -q_w$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\mathbf k =\, &k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} \\ +\, &k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf k_{\mathbf v}$$
$$\mathbf b = \mathbf g \times \mathbf k_{\mathbf m}$$
$$\mathbf c = \mathbf p \times \mathbf k_{\mathbf v}$$
$$\mathbf k'_{\mathbf v} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf k_{\mathbf v}$$
$$\mathbf k'_{\mathbf m} = 2[F_{gw}\mathbf a + F_{pw}(\mathbf c - \mathbf b) + \mathbf g \times (\mathbf c - \mathbf b) + \mathbf p \times \mathbf a] - \mathbf k_{\mathbf m}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf h_{xyz}$$
$$\mathbf h'_{xyz} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf h_{xyz}$$
$$h'_w = h_w + 2[(\mathbf h_{xyz} \times \mathbf p - F_{gw}\mathbf h_{xyz}) \cdot \mathbf g + F_{pw}(\mathbf p \cdot \mathbf h_{xyz})]$$
|}
== See Also ==
* [[Motor]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
92941f83ae7e15aad3d6b24c1919075ae3cd1ae3
Transflection
0
27
298
29
2024-02-09T01:03:00Z
Eric Lengyel
1
wikitext
text/x-wiki
A ''transflection'' is an improper isometry of Euclidean space consisting of a [[reflection]] through a plane and a [[translation]] parallel to the same plane. All combinations of a reflection and a translation, even if the original translation vector is not parallel to the original reflection plane, can be formulated as a transflection with respect to some plane.
The specific kind of [[flector]]
:$$\mathbf F = F_{px} \mathbf e_{1} + F_{py} \mathbf e_{2} + F_{pz} \mathbf e_{3} + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ ,
in which $$F_{pw} = 0$$, performs a reflection through the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ and a translation by twice the displacement vector given by the cross product $$(F_{gx}, F_{gy}, F_{gz}) \times (F_{px}, F_{py}, F_{pz})$$.
To satisfy the [[geometric constraint]], we must have $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} = 0$$, so the vector $$(F_{px}, F_{py}, F_{pz})$$ and the displacement vector are both parallel to the plane $$\mathbf g$$.
== Calculation ==
The exact transflection calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(2F_{gy}^2 + 2F_{gz}^2 - 1)q_x - 2F_{gx} F_{gy} q_y - 2F_{gz} F_{gx} q_z + 2(F_{gy} F_{pz} - F_{gz} F_{py} - F_{gx} F_{gw})q_w\right]\mathbf e_1 \\ +\, &\left[(2F_{gz}^2 + 2F_{gx}^2 - 1)q_y - 2F_{gy} F_{gz} q_z - 2F_{gx} F_{gy} q_x + 2(F_{gz} F_{px} - F_{gx} F_{pz} - F_{gy} F_{gw})q_w\right]\mathbf e_2 \\ +\, &\left[(2F_{gx}^2 + 2F_{gy}^2 - 1)q_z - 2F_{gz} F_{gx} q_x - 2F_{gy} F_{gz} q_y + 2(F_{gx} F_{py} - F_{gy} F_{px} - F_{gz} F_{gw})q_w\right]\mathbf e_3 \\ +\, &q_w\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} + 2F_{gx} F_{gy} l_{vy} + 2 F_{gz} F_{gx} l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} + 2F_{gy} F_{gz} l_{vz} + 2F_{gx} F_{gy} l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} + 2F_{gz} F_{gx} l_{vx} + 2F_{gy} F_{gz} l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(F_{gy} F_{py} + F_{gz} P_{pz})l_{vx} + 2(F_{gx} F_{py} + F_{gy} F_{px})l_{vy} + 2(F_{gx} F_{pz} + F_{gz} F_{px} + F_{gy} F_{gw})l_{vz} + (2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} - 2F_{gx} F_{gy} l_{my} - 2F_{gz} F_{gx} l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(F_{gz} F_{pz} + F_{gx} F_{px})l_{vy} + 2(F_{gy} F_{pz} + F_{gz} F_{py})l_{vz} + 2(F_{gy} F_{px} + F_{gx} F_{py} + F_{gz} F_{gw})l_{vx} + (2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} - 2F_{gy} F_{gz} l_{mz} - 2F_{gx} F_{gy} l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(F_{gx} F_{px} + F_{gy} F_{py})l_{vz} + 2(F_{gz} F_{px} + F_{gx} F_{pz})l_{vx} + 2(F_{gz} F_{py} + F_{gy} F_{pz} + F_{gx} F_{gw})l_{vy} + (2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} - 2F_{gz} F_{gx} l_{mx} - 2F_{gy} F_{gz} l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)h_x + 2F_{gx} F_{gy} h_y + 2F_{gz} F_{gx} h_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)h_y + 2F_{gy} F_{gz} h_z + 2F_{gx} F_{gy} h_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)h_z + 2F_{gz} F_{gx} h_x + 2F_{gy} F_{gz} h_y\right]\mathbf e_{412} \\ +\, &\left[2(F_{gy} F_{pz} - F_{gz} F_{py} + F_{gx} F_{gw})h_x + 2(F_{gz} F_{px} - F_{gx} F_{pz} + F_{gy} F_{gw})h_y + 2(F_{gx} F_{py} - F_{gy} F_{px} + F_{gz} F_{gw})h_z - h_w\right]\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
86796d311bfd5578d4973527a806b23bfa1c313c
Complement translation
0
34
299
223
2024-02-28T02:57:17Z
Eric Lengyel
1
/* Example */
wikitext
text/x-wiki
__NOTOC__
A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space.
The specific kind of [[reciprocal motor]]
:$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$
performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by
:$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ .
== Example ==
The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{31} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{42} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative.
[[Image:Translation.svg|480px]]
[[Image:DualTranslation.svg|480px]]
== Calculation ==
The exact reciprocal translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Reciprocal Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$
|}
== Reciprocal Translation to Horizon ==
A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator
:$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{43} + \mathbf 1$$ .
== See Also ==
* [[Translation]]
* [[Reciprocal rotation]]
* [[Reciprocal reflection]]
ef605cb13d490f0f0b98c6ea6c97e403b05149aa
300
299
2024-02-28T03:00:01Z
Eric Lengyel
1
Undo revision 299 by [[Special:Contributions/Eric Lengyel|Eric Lengyel]] ([[User talk:Eric Lengyel|talk]])
wikitext
text/x-wiki
__NOTOC__
A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space.
The specific kind of [[reciprocal motor]]
:$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$
performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by
:$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ .
== Example ==
The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative.
[[Image:Translation.svg|480px]]
[[Image:DualTranslation.svg|480px]]
== Calculation ==
The exact reciprocal translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Reciprocal Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$
|}
== Reciprocal Translation to Horizon ==
A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator
:$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{43} + \mathbf 1$$ .
== See Also ==
* [[Translation]]
* [[Reciprocal rotation]]
* [[Reciprocal reflection]]
84acb84893568b0e2552daae39f7b6271c18ff73
File:Point.svg
6
80
301
82
2024-04-05T06:02:00Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Point.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Point
0
81
302
83
2024-04-05T06:02:32Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:point.svg|400px|thumb|right|'''Figure 1.''' A point is the intersection of a 4D vector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ .
All points possess the [[geometric constraint]].
The [[bulk]] of a point is given by its $$x$$, $$y$$, and $$z$$ coordinates, and the [[weight]] of a point is given by its $$w$$ coordinate. A point is [[unitized]] when $$p_w^2 = 1$$.
When used as an operator in a sandwich with the [[geometric antiproduct]], a point is a specific kind of [[flector]] that performs an [[inversion]] through itself.
A [[translation]] operator $$\mathbf T$$ that moves a point $$\mathbf p$$ to the origin is given by
:$$\mathbf T = \underline{\mathbf p} \vee \mathbf e_{321} + 2\mathbf p \wedge \mathbf e_{321} = -p_{x\vphantom{y}} \mathbf e_{23} - p_y \mathbf e_{31} - p_{z\vphantom{y}} \mathbf e_{12} + 2p_w {\large\unicode{x1D7D9}}$$ .
== Points at Infinity ==
If the weight of a point is zero (i.e., its $$w$$ coordinate is zero), then the point is contained in the horizon infinitely far away in the direction $$(x, y, z)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
<br clear="right" />
== See Also ==
* [[Line]]
* [[Plane]]
c5773f4b43d9f01a2c2f14d99c6519a4a59c5e93
File:Plane.svg
6
60
303
62
2024-04-05T06:02:54Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Plane.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Plane
0
61
304
63
2024-04-05T06:03:06Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ .
All planes possess the [[geometric constraint]].
The [[bulk]] of a plane is given by its $$w$$ coordinate, and the [[weight]] of a plane is given by its $$x$$, $$y$$, and $$z$$ coordinates. A plane is [[unitized]] when $$g_x^2 + g_y^2 + g_z^2 = 1$$. The [[attitude]] of a plane is the bivector $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ corresponding to its normal.
When used as an operator in the sandwich with the [[geometric antiproduct]], a plane is a specific kind of [[flector]] that performs a [[reflection]] through itself.
A [[dual translation]] operator $$\mathbf T$$ that moves a plane $$\mathbf g$$ to the horizon is given by
:$$\mathbf T = \underline{\mathbf g} \wedge \mathbf e_{4} + 2\mathbf g \vee \mathbf e_4 = g_{x\vphantom{y}} \mathbf e_{41} + g_y \mathbf e_{42} + g_{z\vphantom{y}} \mathbf e_{43} + 2g_w$$ .
== Plane at Infinity ==
If the weight of a plane is zero (i.e., its $$x$$, $$y$$, and $$z$$ coordinates are all zero), then the plane lies at infinity in all directions. Such a plane is normalized when $$g_w = \pm 1$$. This is the ''horizon'' of three-dimensional space.
<br clear="right" />
== See Also ==
* [[Point]]
* [[Line]]
bc898be62b5afeb98897f1b75edb0de508a1a246
File:Line.svg
6
8
305
10
2024-04-05T06:03:28Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Line.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Line infinity.svg
6
9
306
11
2024-04-05T06:03:54Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Line infinity.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Proper isom.svg
6
4
307
5
2024-04-05T06:41:03Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Proper isom.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Improper isom.svg
6
43
308
45
2024-04-05T06:41:47Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Improper isom.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Duality.svg
6
78
309
80
2024-04-05T06:43:01Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Duality.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Groups.svg
6
26
310
191
2024-04-05T06:45:11Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Groups.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Rotation
0
30
313
287
2024-04-08T05:16:19Z
Eric Lengyel
1
/* Calculation */
wikitext
text/x-wiki
A ''rotation'' is a proper isometry of Euclidean space.
For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]]
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathbf R$$ differs from a general [[motor]] only in that it is always the case that $$R_{mw} = 0$$. The line $$\boldsymbol l$$ and its [[weight dual]] $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ are invariant under this operation. The line $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ lies in the [[horizon]] in directions perpendicular to the direction of $$\boldsymbol l$$.
== Calculation ==
The exact rotation calculations for points, lines, and planes are shown in the following table, where $$\mathbf v = (R_{vx}, R_{vy}, R_{vz})$$ and $$\mathbf m = (R_{mx}, R_{my}, R_{mz})$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$
$$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$p'_w = p_w$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$
$$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$
$$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$
$$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(R_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$
$$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz}) \cdot \mathbf v - R_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$
|}
== See Also ==
* [[Reciprocal rotation]]
* [[Translation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
3e8ced7440c1c324d18d9d2f2560c3602853de79
Main Page
0
1
314
292
2024-04-12T06:09:27Z
Eric Lengyel
1
/* Various properties and unary operations */
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Bulk and weight]]
* [[Duals]]
* [[Reverses]]
* [[Attitude]]
* [[Geometric norm]]
* [[Geometric constraint]]
* [[Unitization]]
* [[Duality]]
=== Products and other binary operations ===
* [[Exterior products]]
* [[Dot products]]
* [[Interior products]]
* [[Geometric products]]
* [[Join and meet]]
* [[Projections]]
* [[Euclidean distance]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
=== Research Articles ===
* [[Projective Geometric Algebra Done Right]]
* [[Symmetries in Projective Geometric Algebra]]
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]
af81b1e8091e065bf498760bd1b56229fae9733b
324
314
2024-04-13T01:40:30Z
Eric Lengyel
1
/* Various properties and unary operations */
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Metrics]]
* [[Bulk and weight]]
* [[Duals]]
* [[Reverses]]
* [[Attitude]]
* [[Geometric norm]]
* [[Geometric constraint]]
* [[Unitization]]
* [[Duality]]
=== Products and other binary operations ===
* [[Exterior products]]
* [[Dot products]]
* [[Interior products]]
* [[Geometric products]]
* [[Join and meet]]
* [[Projections]]
* [[Euclidean distance]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
=== Research Articles ===
* [[Projective Geometric Algebra Done Right]]
* [[Symmetries in Projective Geometric Algebra]]
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]
e08e347ea9d96af1d29008d84268c2ee79c19181
Duals
0
164
315
2024-04-12T06:15:10Z
Eric Lengyel
1
Created page with "The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the extended metric tensor. The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \over..."
wikitext
text/x-wiki
The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the extended metric tensor.
The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the extended antimetric tensor.
d2586309ac2161c6210ff7ab897b2fa8632f5943
317
315
2024-04-12T06:18:44Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the extended metric tensor. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ .
The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the extended antimetric tensor. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ .
ef569f87bb517d339a6a6489512d7fed2e13367c
318
317
2024-04-12T06:26:18Z
Eric Lengyel
1
wikitext
text/x-wiki
Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''.
== Dual ==
The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the extended metric tensor. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ .
The bulk dual satisfies the following identity based on the [[geometric product]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ .
== Antidual ==
The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the extended antimetric tensor. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ .
The weight dual satisfies the following identity based on the [[geometric antiproduct]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ .
== See Also ==
* [[Complements]]
* [[Bulk and Weight]]
873b8a6e297a12296ad4f01e3a3cee6588a65516
319
318
2024-04-12T06:26:29Z
Eric Lengyel
1
/* See Also */
wikitext
text/x-wiki
Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''.
== Dual ==
The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the extended metric tensor. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ .
The bulk dual satisfies the following identity based on the [[geometric product]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ .
== Antidual ==
The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the extended antimetric tensor. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ .
The weight dual satisfies the following identity based on the [[geometric antiproduct]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ .
== See Also ==
* [[Complements]]
* [[Bulk and weight]]
87addf6afa39950f5a2ed22675b8e1a8252e8f02
323
319
2024-04-13T01:36:54Z
Eric Lengyel
1
wikitext
text/x-wiki
Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''.
== Dual ==
The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the $$16 \times 16$$ metric exomorphism matrix. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ .
The bulk dual satisfies the following identity based on the [[geometric product]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ .
== Antidual ==
The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the $$16 \times 16$$ metric antiexomorphism matrix. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ .
The weight dual satisfies the following identity based on the [[geometric antiproduct]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ .
== See Also ==
* [[Complements]]
* [[Bulk and weight]]
35d3449ca1d1f03b5f7e011dae9706aa78481636
333
323
2024-04-13T01:54:47Z
Eric Lengyel
1
wikitext
text/x-wiki
Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''.
== Dual ==
The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ .
The bulk dual satisfies the following identity based on the [[geometric product]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ .
== Antidual ==
The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ .
The weight dual satisfies the following identity based on the [[geometric antiproduct]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ .
== See Also ==
* [[Complements]]
* [[Bulk and weight]]
739c40f09f3bb850c1f38b712a2e28a932c29c17
334
333
2024-04-13T05:05:57Z
Eric Lengyel
1
wikitext
text/x-wiki
Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''.
== Dual ==
The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ .
The bulk dual satisfies the following identity based on the [[geometric product]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ .
== Antidual ==
The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ .
The weight dual satisfies the following identity based on the [[geometric antiproduct]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ .
== Geometries ==
The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table.
{| class="wikitable"
! Type !! Bulk Dual !! Weight Dual
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$
|}
== See Also ==
* [[Complements]]
* [[Bulk and weight]]
== In the Book ==
* Duals are introduced in Section 2.12.
2badc65fbdfb94998e7d635173910198ac9b4a12
Dual
0
165
316
2024-04-12T06:16:16Z
Eric Lengyel
1
Redirected page to [[Duals]]
wikitext
text/x-wiki
#REDIRECT [[Duals]]
15f9e5636d77c1786a0220d23ce698f1f4e1bf37
Complements
0
41
320
274
2024-04-12T06:26:50Z
Eric Lengyel
1
/* See Also */
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation
:$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation
:$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ .
This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$.
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$
:$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|720px]]
== See Also ==
* [[Duals]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
* [[Duality]]
7310e3206d1928424f221452bee63b2219583ad4
322
320
2024-04-12T20:39:44Z
Eric Lengyel
1
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation
:$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation
:$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ .
This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$.
Taking the right or left complement twice causes the sign to change according to the formula
:$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ .
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$
:$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|720px]]
== See Also ==
* [[Duals]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
* [[Duality]]
32be3b6b79f8b9cc0cd311c094840fb285e9ddc8
335
322
2024-04-13T05:06:42Z
Eric Lengyel
1
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation
:$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation
:$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ .
This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$.
Taking the right or left complement twice causes the sign to change according to the formula
:$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ .
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$
:$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|720px]]
== See Also ==
* [[Duals]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
* [[Duality]]
== In the Book ==
* Complements are introduced in Section 2.2.
d8971bfdbdfb940c0f1b836b7becab4d25f39637
Bulk and weight
0
6
321
234
2024-04-12T06:27:02Z
Eric Lengyel
1
/* See Also */
wikitext
text/x-wiki
The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''.
The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as
:$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$,
where $$\mathbf G$$ is the metric exomorphism matrix. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor.
The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as
:$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$,
where $$\mathbb G$$ is the metric anti-exomorphism matrix. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor.
The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon.
An element is [[unitized]] when the magnitude of its weight is one.
The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$
|}
== See Also ==
* [[Attitude]]
* [[Geometric norm]]
* [[Unitization]]
* [[Complements]]
* [[Duals]]
ff7a233a476323e48732e2bf4e268219e1c63bd9
332
321
2024-04-13T01:54:30Z
Eric Lengyel
1
wikitext
text/x-wiki
The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''.
The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as
:$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$,
where $$\mathbf G$$ is the [[metric exomorphism matrix]]. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor.
The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as
:$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$,
where $$\mathbb G$$ is the [[metric antiexomorphism matrix]]. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor.
The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon.
An element is [[unitized]] when the magnitude of its weight is one.
The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$
|}
== See Also ==
* [[Attitude]]
* [[Geometric norm]]
* [[Unitization]]
* [[Complements]]
* [[Duals]]
83723e37b96aa190afed58123c4fd897dcfe9eca
337
332
2024-04-13T05:08:37Z
Eric Lengyel
1
wikitext
text/x-wiki
The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''.
The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as
:$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$,
where $$\mathbf G$$ is the [[metric exomorphism matrix]]. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor.
The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as
:$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$,
where $$\mathbb G$$ is the [[metric antiexomorphism matrix]]. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor.
The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon.
An element is [[unitized]] when the magnitude of its weight is one.
The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$
|}
== See Also ==
* [[Attitude]]
* [[Geometric norm]]
* [[Unitization]]
* [[Complements]]
* [[Duals]]
== In the Book ==
* Bulk and weight are introduced in Section 2.8.3.
6451f98fe4c49fcb9f7f85de0b4c7dfb3bf0eb8e
File:Metric-rga-3d.svg
6
166
325
2024-04-13T01:45:36Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Antimetric-rga-3d.svg
6
167
326
2024-04-13T01:48:12Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Metrics
0
168
327
2024-04-13T01:48:35Z
Eric Lengyel
1
Created page with "The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by :$$\mathfrak g = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \\\end{bmatrix}$$ . The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:metric-rga-3d.svg|420px]] The ''metri..."
wikitext
text/x-wiki
The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by
:$$\mathfrak g = \begin{bmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 \\\end{bmatrix}$$ .
The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below.
[[Image:metric-rga-3d.svg|420px]]
The ''metric antiexomorphism matrix'' $$\mathbb G$$, often called the "antimetric", corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below.
[[Image:antimetric-rga-3d.svg|420px]]
a39cea3da41b1a281b618822e28ff7f86a11e20d
328
327
2024-04-13T01:53:28Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by
:$$\mathfrak g = \begin{bmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 \\\end{bmatrix}$$ .
The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below.
[[Image:metric-rga-3d.svg|420px]]
The ''metric antiexomorphism matrix'' $$\mathbb G$$, often called the "antimetric", corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below.
[[Image:antimetric-rga-3d.svg|420px]]
The product of the metric exomorphism matrix $$\mathbf G$$ and metric antiexomorphism matrix $$\mathbb G$$ for any metric $$\mathfrak g$$ is always equal to the $$16 \times 16$$ identity matrix times the determinant of $$\mathfrak g$$. That is, $$\mathbf G \mathbb G = \det(\mathfrak g) \mathbf I$$.
The metric and antimetric determine [[bulk and weight]], [[duals]], [[dot products]], and [[geometric products]].
== See Also ==
* [[Bulk and weight]]
* [[Duals]]
* [[Dot products]]
3f7b68fd353ff38750aa13be339c6af1127865c0
336
328
2024-04-13T05:07:45Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by
:$$\mathfrak g = \begin{bmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 \\\end{bmatrix}$$ .
The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below.
[[Image:metric-rga-3d.svg|420px]]
The ''metric antiexomorphism matrix'' $$\mathbb G$$, often called the "antimetric", corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below.
[[Image:antimetric-rga-3d.svg|420px]]
The product of the metric exomorphism matrix $$\mathbf G$$ and metric antiexomorphism matrix $$\mathbb G$$ for any metric $$\mathfrak g$$ is always equal to the $$16 \times 16$$ identity matrix times the determinant of $$\mathfrak g$$. That is, $$\mathbf G \mathbb G = \det(\mathfrak g) \mathbf I$$.
The metric and antimetric determine [[bulk and weight]], [[duals]], [[dot products]], and [[geometric products]].
== See Also ==
* [[Bulk and weight]]
* [[Duals]]
* [[Dot products]]
== In the Book ==
* The metric and antimetric are introduced in Section 2.8.
5917858ccc7cf88ea76f738254132567c0d87f95
338
336
2024-04-13T05:08:52Z
Eric Lengyel
1
/* In the Book */
wikitext
text/x-wiki
The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by
:$$\mathfrak g = \begin{bmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 \\\end{bmatrix}$$ .
The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below.
[[Image:metric-rga-3d.svg|420px]]
The ''metric antiexomorphism matrix'' $$\mathbb G$$, often called the "antimetric", corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below.
[[Image:antimetric-rga-3d.svg|420px]]
The product of the metric exomorphism matrix $$\mathbf G$$ and metric antiexomorphism matrix $$\mathbb G$$ for any metric $$\mathfrak g$$ is always equal to the $$16 \times 16$$ identity matrix times the determinant of $$\mathfrak g$$. That is, $$\mathbf G \mathbb G = \det(\mathfrak g) \mathbf I$$.
The metric and antimetric determine [[bulk and weight]], [[duals]], [[dot products]], and [[geometric products]].
== See Also ==
* [[Bulk and weight]]
* [[Duals]]
* [[Dot products]]
== In the Book ==
* The metric and antimetric are introduced in Sections 2.8.1 and 2.8.2.
ed54a704a06c8bbbc623b0732dc2b0b40fd752e7
Dot products
0
67
329
263
2024-04-13T01:53:48Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''dot product'' is the inner product in geometric algebra. The dot product and its antiproduct are important for the calculation of angles and [[Geometric norm | norms]].
== Dot Product ==
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ ,
where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]], and we are using ordinary matrix multiplication.
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade.
== Antidot Product ==
The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ ,
where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]].
The antidot product can also be derived from the dot product using the De Morgan relationship
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ .
== Table ==
The following table shows the dot product and antidot product of each basis element $$\mathbf u$$ in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ with itself. All other dot products and antidot products are zero.
[[Image:Dots.svg|720px]]
== See Also ==
* [[Geometric products]]
* [[Wedge products]]
313483ccde15bfc633fbce8dacc41425c8ba6c69
Metric exomorphism matrix
0
169
330
2024-04-13T01:53:59Z
Eric Lengyel
1
Redirected page to [[Metrics]]
wikitext
text/x-wiki
#REDIRECT [[Metrics]]
fcbe1745c2df4f4d52a418ced4d4c3625afd513f
Metric antiexomorphism matrix
0
170
331
2024-04-13T01:54:07Z
Eric Lengyel
1
Redirected page to [[Metrics]]
wikitext
text/x-wiki
#REDIRECT [[Metrics]]
fcbe1745c2df4f4d52a418ced4d4c3625afd513f
Grade and antigrade
0
59
339
61
2024-04-13T05:10:43Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''grade'' of a basis element in a geometric algebra is equal to the number of basis vectors present in its factorization. An arbitrary element whose components all have the same grade is also said to have that grade.
The ''antigrade'' of a basis element is equal to the number of basis vectors absent from its factorization.
The grade of an element $$\mathbf x$$ is denoted by $$\operatorname{gr}(\mathbf x)$$, and the antigrade is denoted by $$\operatorname{ag}(\mathbf x)$$. In an ''n''-dimensional geometric algebra, it is always the case that
:$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ .
[[Scalars]] have grade 0, and [[antiscalars]] have grade ''n''. [[Vectors]] have grade 1, and [[antivectors]] have antigrade 1. [[Bivectors]] have grade 2, and [[trivectors]] have grade 3.
== See Also ==
* [[Duality]]
* [[Complements]]
== In the Book ==
* Grade and antigrade are introduced in Section 2.1.4.
31907a615c2fcd70f548aa77c4966af383cd08a4
Reverses
0
58
340
286
2024-04-13T05:11:32Z
Eric Lengyel
1
wikitext
text/x-wiki
''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations.
For any element $$\mathbf u$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf u$$, which we denote by $$\mathbf{\tilde u}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{423}$$ is $$\mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_4$$, which we would write as $$-\mathbf e_{423}$$since 324 is an odd permutation of 423. In general, the reverse of an element $$\mathbf u$$ is given by
:$$\mathbf{\tilde u} = (-1)^{\operatorname{gr}(\mathbf u)(\operatorname{gr}(\mathbf u) - 1)/2}\,\mathbf u$$ .
Symmetrically, for any element $$\mathbf u$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf u$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf u$$ is given by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{ag}(\mathbf u)(\operatorname{ag}(\mathbf u) - 1)/2}\,\mathbf u$$ .
The reverse and antireverse of any element $$\mathbf u$$ are related by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}(-1)^{n(n-1)/2}\,\mathbf{\tilde u}$$ ,
where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse
:$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ ,
and similarly for the antireverse.
The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Reverses.svg|720px]]
== See Also ==
* [[Complements]]
== In the Book ==
* Reverses and antireverses are introduced in Section 3.4.
495d7a8e74728cba93defadc063d6266a6994ae8
Attitude
0
5
341
236
2024-04-13T05:13:32Z
Eric Lengyel
1
wikitext
text/x-wiki
The attitude function, denoted by $$\operatorname{att}$$, extracts the attitude of a geometry and returns a purely directional object. The attitude function is defined as
:$$\operatorname{att}(\mathbf u) = \mathbf u \vee \overline{\mathbf e_4}$$ .
The attitude of a [[line]] is the line's direction as a vector, and the attitude of a [[plane]] is the plane's normal as a bivector.
The following table lists the attitude for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Attitude
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\operatorname{att}(\mathbf z) = y \mathbf e_{321}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\operatorname{att}(\mathbf p) = p_w \mathbf 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\operatorname{att}(\boldsymbol l) = l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\operatorname{att}(\mathbf g) = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
|}
== In the Book ==
* The attitude is discussed in Section 2.8.4.
1ac85212b8468925785d88e573d64b511332b60e
Geometric norm
0
38
342
294
2024-04-13T05:14:11Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm.
For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator.
== Bulk Norm ==
The ''bulk norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf u$$ with itself:
:$$\left\Vert\mathbf u\right\Vert_\unicode{x25CF} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}$$ .
An element that has a bulk norm of '''1''' is said to be ''bulk normalized''.
The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$
|}
== Weight Norm ==
The ''weight norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf u$$ with itself:
:$$\left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ .
(Note that the square root in this case is taken with respect to the geometric antiproduct.)
An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''.
The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$
|}
== Geometric Norm ==
The bulk norm and weight norm are summed to construct the ''geometric norm'' given by
:$$\left\Vert\mathbf u\right\Vert = \left\Vert\mathbf u\right\Vert_\unicode{x25CF} + \left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u} + \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ .
This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because
:$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ .
Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf u$$ is given by
:$$\widehat{\left\Vert\mathbf u\right\Vert} = \dfrac{\left\Vert\mathbf u\right\Vert}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf u\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}} + {\large\unicode{x1D7D9}}$$ .
The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$.
Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== See Also ==
* [[Geometric constraint]]
== In the Book ==
* The geometric norm is discussed in Section 2.10.
8f20948532b553f1476b1a63539a37e81a9b6e44
Geometric constraint
0
40
343
293
2024-04-13T05:14:49Z
Eric Lengyel
1
wikitext
text/x-wiki
An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric constraint'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is,
:$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$
and
:$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ .
The set of all elements satisfying the geometric constraint is closed under both the [[geometric product]] and [[geometric antiproduct]].
The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ due to the geometric constraint. Points and planes do not have any requirements—they have no constraints.
{| class="wikitable"
! Type !! Definition !! Requirement
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$xy = 0$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$
|}
== See Also ==
* [[Geometric norm]]
== In the Book ==
* The geometric constraint is discussed in Section 3.4.3.
d70d9e3f2b6772108cf506c902736a0c9199bf30
Unitization
0
39
344
235
2024-04-13T05:15:32Z
Eric Lengyel
1
wikitext
text/x-wiki
''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''.
An element $$\mathbf u$$ is unitized by calculating
:$$\mathbf{\hat u} = \dfrac{\mathbf u}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf u}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}}$$ .
In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one.
The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$p_w^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$
|}
== See Also ==
* [[Geometric norm]]
== In the Book ==
* Unitization is discussed in Section 2.10.2.
06fb5508fd194f0c0e95cd2fa86f8e31aae4f54c
Duality
0
79
345
81
2024-04-13T05:16:31Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:Duality.svg|480px|thumb|right|'''Figure 1.''' The coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as the one-dimensional span of a single vector representing a homogeneous point or as the $$(n - 1)$$-dimensional span of all orthogonal vectors representing a homogeneous plane. Geometrically, these two interpretations are dual to each other, and their distances to the origin are reciprocals of each other.]]
The concept of duality can be understood geometrically in an ''n''-dimensional projective setting by considering both the subspace that an object occupies and the complementary subspace that the object concurrently does not occupy. The dimensionalities of these two components always sum to ''n'', and they represent the ''space'' and ''antispace'' associated with the object. The example shown in '''Figure 1''' demonstrates the duality between homogeneous points and planes in a four-dimensional projective space. The quadruplet of coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as a vector pointing from the origin toward a specific location on the projection subspace $$w = 1$$. This vector corresponds to the one-dimensional space of the point that it represents. The dual of a point materializes when we consider all of the directions of space that are orthogonal to the single direction $$(p_x, p_y, p_z, p_w)$$. As illustrated by the figure, these directions span an $$(n - 1)$$-dimensional subspace that intersects the projection subspace at a plane when $$n = 4$$. In this way, the coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as both a point and a plane, and they are duals of each other.
When we express the coordinates $$(p_x, p_y, p_z, p_w)$$ on the [[vector]] basis as $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$, it explicitly states that we are working with a single spatial dimension representing a point, and the ambiguity is removed. Similarly, if we express the coordinates on the [[antivector]] basis as $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$, then we are working with the three orthogonal spatial dimensions representing a plane. In each case, the subscripts of the basis elements tell us which basis vectors are present in the representation, and this defines the space of the object. The subscripts also tell us which basis vectors are absent in the representation, and this defines the antispace of the object. Acknowledging the existence of both the space and the antispace of any object and assigning equal meaningfulness to them allows us to explore the nature of duality to its fullest. A vector $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is never only a point, but both a point and a plane simultaneously, where the point exists in space, and the plane exists in antispace. Likewise, an antivector $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$ is never only a plane, but both a plane and a point simultaneously, where the plane exists in space, and the point exists in antispace. If we study only the spatial facet of these objects, then we are missing half of a bigger picture.
== See Also ==
* [[Complements]]
== In the Book ==
* Duality in general is discussed in Section 2.6.
4cdecd77c046ac2a5a68902e2eff95e96c198c3b
363
345
2024-04-13T23:33:37Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:Duality.svg|480px|thumb|right|'''Figure 1.''' The coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as the one-dimensional span of a single vector representing a homogeneous point or as the $$(n - 1)$$-dimensional span of all orthogonal vectors representing a homogeneous plane. Geometrically, these two interpretations are dual to each other, and their distances to the origin are reciprocals of each other.]]
The concept of duality can be understood geometrically in an ''n''-dimensional projective setting by considering both the subspace that an object occupies and the complementary subspace that the object concurrently does not occupy. The dimensionalities of these two components always sum to ''n'', and they represent the ''space'' and ''antispace'' associated with the object. The example shown in '''Figure 1''' demonstrates the duality between homogeneous points and planes in a four-dimensional projective space. The quadruplet of coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as a vector pointing from the origin toward a specific location on the projection subspace $$w = 1$$. This vector corresponds to the one-dimensional space of the point that it represents. The dual of a point materializes when we consider all of the directions of space that are orthogonal to the single direction $$(p_x, p_y, p_z, p_w)$$. As illustrated by the figure, these directions span an $$(n - 1)$$-dimensional subspace that intersects the projection subspace at a plane when $$n = 4$$. In this way, the coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as both a point and a plane, and they are duals of each other.
When we express the coordinates $$(p_x, p_y, p_z, p_w)$$ on the [[vector]] basis as $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$, it explicitly states that we are working with a single spatial dimension representing a point, and the ambiguity is removed. Similarly, if we express the coordinates on the [[antivector]] basis as $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$, then we are working with the three orthogonal spatial dimensions representing a plane. In each case, the subscripts of the basis elements tell us which basis vectors are present in the representation, and this defines the space of the object. The subscripts also tell us which basis vectors are absent in the representation, and this defines the antispace of the object. Acknowledging the existence of both the space and the antispace of any object and assigning equal meaningfulness to them allows us to explore the nature of duality to its fullest. A vector $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is never only a point, but both a point and a plane simultaneously, where the point exists in space, and the plane exists in antispace. Likewise, an antivector $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$ is never only a plane, but both a plane and a point simultaneously, where the plane exists in space, and the point exists in antispace. If we study only the spatial facet of these objects, then we are missing half of a bigger picture.
== In the Book ==
* Duality in general is discussed in Section 2.6.
== See Also ==
* [[Complements]]
214cebf0fe6597f1441b7c38878abef54de66bfe
Exterior products
0
73
346
282
2024-04-13T23:24:03Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct.
The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\mathbf a$$ and $$\mathbf b$$ are parallel, then their exterior product is zero. (Compare this to the [[dot product]], which is zero whenever $$\mathbf a$$ and $$\mathbf b$$ are orthogonal.)
== Exterior Product ==
The exterior product is widely known as the ''wedge product'' because it is written with an upward pointing wedge. The exterior product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \wedge \mathbf b$$ and read "$$\mathbf a$$ wedge $$\mathbf b$$". Grassmann called this the progressive combinatorial product.
The defining characteristic of the wedge product is that multiplying any vector $$\mathbf v$$ by itself produces zero: $$\mathbf v \wedge \mathbf v = 0$$. This implies that the wedge product is anticommutative for vectors, so we always have
:$$\mathbf v \wedge \mathbf w = -\mathbf w \wedge \mathbf v$$
for vectors $$\mathbf v$$ and $$\mathbf w$$. The wedge product is not anticommutative in general, however. For general basis elements $$\mathbf a$$ and $$\mathbf b$$, reversing the order of the operands satisfies the relationship
:$$\mathbf a \wedge \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\operatorname{gr}(\mathbf b)} \mathbf b \wedge \mathbf a$$ .
The wedge product adds the [[grades]] of its operands, so we have
:$$\operatorname{gr}(\mathbf a \wedge \mathbf b) = \operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)$$ .
The following Cayley table shows the exterior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:WedgeProduct.svg|720px]]
== Exterior Antiproduct ==
The exterior antiproduct is a dual to the exterior product. It is written with a downward pointing wedge and thus called the ''antiwedge product''. The exterior antiproduct $$\mathbf a \vee \mathbf b$$ is read "$$\mathbf a$$ antiwedge $$\mathbf b$$". Grassmann called this the regressive combinatorial product.
Whereas the wedge product combines the full dimensions of its operands, the antiwedge product combines the empty dimensions of its operands. The antiwedge product adds the [[antigrades]] of its operands, so we have
:$$\operatorname{ag}(\mathbf a \vee \mathbf b) = \operatorname{ag}(\mathbf a) + \operatorname{ag}(\mathbf b)$$ .
The following Cayley table shows the exterior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:AntiwedgeProduct.svg|720px]]
== De Morgan Laws ==
The relationship between the product and antiproduct is based on an exchange of full and empty dimensions. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.
:$$\overline{\mathbf a \wedge \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \vee \overline{\mathbf b}$$
:$$\overline{\mathbf a \vee \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \wedge \overline{\mathbf b}$$
:$$\underline{\mathbf a \wedge \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \vee \underline{\mathbf b}$$
:$$\underline{\mathbf a \vee \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \wedge \underline{\mathbf b}$$
== General Properties ==
The following table lists several general properties of the wedge product and antiwedge product.
{| class="wikitable"
! Property !! Description
|-
| style="padding: 12px;" | $$\mathbf a \wedge \mathbf b = -\mathbf b \wedge \mathbf a$$
| style="padding: 12px;" | Anticommutativity of the wedge product for vectors $$\mathbf a$$ and $$\mathbf b$$.
|-
| style="padding: 12px;" | $$\mathbf a \vee \mathbf b = -\mathbf b \vee \mathbf a$$
| style="padding: 12px;" | Anticommutativity of the antiwedge product for antivectors $$\mathbf a$$ and $$\mathbf b$$.
|-
| style="padding: 12px;" | $$(\mathbf a \wedge \mathbf b) \wedge \mathbf c = \mathbf a \wedge (\mathbf b \wedge \mathbf c)$$
| style="padding: 12px;" | Associative law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$(\mathbf a \vee \mathbf b) \vee \mathbf c = \mathbf a \vee (\mathbf b \vee \mathbf c)$$
| style="padding: 12px;" | Associative law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$\mathbf a \wedge (\mathbf b + \mathbf c) = \mathbf a \wedge \mathbf b + \mathbf a \wedge \mathbf c$$
| style="padding: 12px;" | Distributive law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$\mathbf a \vee (\mathbf b + \mathbf c) = \mathbf a \vee \mathbf b + \mathbf a \vee \mathbf c$$
| style="padding: 12px;" | Distributive law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$.
|-
| style="padding: 12px;" | $$(t\mathbf a) \wedge \mathbf b = \mathbf a \wedge (t\mathbf b) = t(\mathbf a \wedge \mathbf b)$$
| style="padding: 12px;" | Scalar factorization of the wedge product.
|-
| style="padding: 12px;" | $$(t\mathbf a) \vee \mathbf b = \mathbf a \vee (t\mathbf b) = t(\mathbf a \vee \mathbf b)$$
| style="padding: 12px;" | Scalar factorization of the antiwedge product.
|-
| style="padding: 12px;" | $$s \wedge \mathbf a = \mathbf a \wedge s = s\mathbf a$$
| style="padding: 12px;" | Wedge product of a [[scalar]] $$s$$ and any basis element $$\mathbf a$$.
|-
| style="padding: 12px;" | $$s \vee \mathbf a = \mathbf a \vee s = s\mathbf a$$
| style="padding: 12px;" | Antiwedge product of an [[antiscalar]] $$s$$ and any basis element $$\mathbf a$$.
|-
| style="padding: 12px;" | $$s \wedge t = st$$
| style="padding: 12px;" | Wedge product of [[scalars]] $$s$$ and $$t$$.
|-
| style="padding: 12px;" | $$s \vee t = st$$
| style="padding: 12px;" | Antiwedge product of [[antiscalars]] $$s$$ and $$t$$.
|}
== In the Book ==
* The exterior (wedge) product is introduced in Section 2.1.1.
* The exterior antiproduct is discussed in Section 2.3.
== See Also ==
* [[Geometric products]]
* [[Dot products]]
* [[Complements]]
ce2ae72814bc612a70b0736fc4009d2ec18e7759
Geometric products
0
76
347
278
2024-04-13T23:25:20Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct.
== Geometric Product ==
The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$".
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to −'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$
:$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
Cells highlighted in green correspond to the contribution from the [[wedge product]].
[[Image:GeometricProduct.svg|720px]]
== Geometric Antiproduct ==
The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$".
The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows.
:$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$
:$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$
:$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$.
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$.
Cells highlighted in green correspond to the contribution from the [[antiwedge product]].
[[Image:GeometricAntiproduct.svg|720px]]
== De Morgan Laws ==
The relationship between the product and antiproduct is based on an exchange of full and empty dimensions. We can then express each product in terms of the other through an analog of De Morgan's laws as follows.
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$
:$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$
:$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$
== In the Book ==
* The geometric product and antiproduct are introduced in Section 3.1.
== See Also ==
* [[Wedge products]]
* [[Dot products]]
* [[Complements]]
86caa6ed8275a0991c424711d278299e3e3d35fa
Dot products
0
67
348
329
2024-04-13T23:26:29Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''dot product'' is the inner product in geometric algebra. The dot product and its antiproduct are important for the calculation of angles and [[Geometric norm | norms]].
== Dot Product ==
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ ,
where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]], and we are using ordinary matrix multiplication.
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade.
== Antidot Product ==
The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ ,
where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]].
The antidot product can also be derived from the dot product using the De Morgan relationship
:$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ .
== Table ==
The following table shows the dot product and antidot product of each basis element $$\mathbf u$$ in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ with itself. All other dot products and antidot products are zero.
[[Image:Dots.svg|720px]]
== In the Book ==
* The dot product and antidot product are introduced in Section 2.9.
== See Also ==
* [[Geometric products]]
* [[Wedge products]]
0d014770c34ea5213f0bc03c996ab3559a20730e
Bulk dual
0
171
349
2024-04-13T23:27:00Z
Eric Lengyel
1
Redirected page to [[Duals]]
wikitext
text/x-wiki
#REDIRECT [[Duals]]
15f9e5636d77c1786a0220d23ce698f1f4e1bf37
Weight dual
0
172
350
2024-04-13T23:27:07Z
Eric Lengyel
1
Redirected page to [[Duals]]
wikitext
text/x-wiki
#REDIRECT [[Duals]]
15f9e5636d77c1786a0220d23ce698f1f4e1bf37
Interior products
0
70
351
266
2024-04-13T23:27:50Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object.
== Contractions ==
The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The contractions have the effect of subtracting grades so that
:$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$
and
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode{x25CB}} \mathbf b) \vee \mathbf 1$$ .
The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$.
[[Image:Constractions.svg|720px]]
== Expansions ==
The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The expansions have the effect of subtracting antigrades so that
:$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .
In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$
and
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode{x25CF}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ .
The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$.
[[Image:Expansions.svg|720px]]
== In the Book ==
* Interior products, contractions, and expansions are discussed in Section 2.13.
== See Also ==
* [[Projections]]
bf03bb5a7ab3caca70777d95a48ea47a2396e21a
Projections
0
50
352
227
2024-04-13T23:28:41Z
Eric Lengyel
1
wikitext
text/x-wiki
Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below.
The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
== Projection ==
The orthogonal projection of an object $$\mathbf a$$ onto an object $$\mathbf b$$ is given by the general formula
:$$\mathbf b \vee (\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606})$$ ,
where the operation in parentheses is the [[weight expansion]] of $$\mathbf a$$ into $$\mathbf b$$.
Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Projection Formula !! Illustration
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$.
$$\mathbf g \vee (\mathbf p \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$
| style="padding: 2em;" | [[Image:point_onto_plane.svg|200px]]
|-
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.
$$\begin{split}\boldsymbol l \vee (\mathbf p \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)(l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3) \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$
| style="padding: 2em;" | [[Image:point_onto_line.svg|200px]]
|-
| style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$.
$$\begin{split}\mathbf g \vee (\boldsymbol l \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$
| style="padding: 2em;" | [[Image:line_onto_plane.svg|200px]]
|}
== Antiprojection ==
The orthogonal antiprojection of an object $$\mathbf a$$ onto an object $$\mathbf b$$ is given by the general formula
:$$\mathbf b \wedge (\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606})$$ ,
where the operation in parentheses is the [[weight contraction]] of $$\mathbf a$$ with $$\mathbf b$$.
Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
{| class="wikitable"
! Antiprojection Formula !! Illustration
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$.
$$\mathbf p \wedge (\mathbf g \vee \mathbf p^\unicode["segoe ui symbol"]{x2606}) = p_w^2(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$
| style="padding: 2em;" | [[Image:plane_onto_point.svg|200px]]
|-
| style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.
$$\begin{split}\mathbf p \wedge (\boldsymbol l \vee \mathbf p^\unicode["segoe ui symbol"]{x2606}) =\, &p_w^2(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$
| style="padding: 2em;" | [[Image:line_onto_point.svg|200px]]
|-
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$.
$$\begin{split}\boldsymbol l \wedge (\mathbf g \vee \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$
| style="padding: 2em;" | [[Image:plane_onto_line.svg|200px]]
|}
== Projection of Origin ==
When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Projection Formula !! Description
|-
| style="padding: 12px;" | $$\mathbf g \vee (\mathbf e_4 \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$.
|-
| style="padding: 12px;" | $$\boldsymbol l \vee (\mathbf e_4 \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$
| style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$.
|}
== Antiprojection of Horizon ==
Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the [[bulk contraction]]. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table.
{| class="wikitable"
! Antiprojection Formula !! Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge (\mathbf e_{321} \vee \mathbf p^\unicode["segoe ui symbol"]{x2605}) = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$.
|-
| style="padding: 12px;" | $$\boldsymbol l \wedge (\mathbf e_{321} \vee \boldsymbol l^\unicode["segoe ui symbol"]{x2605}) = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$
| style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$.
|}
== In the Book ==
* Projections are discussed in Section 2.13.6.
== See Also ==
* [[Join and meet]]
562bcc5ce564d2722fead980bc883546839d3bac
Euclidean distance
0
49
353
143
2024-04-13T23:30:41Z
Eric Lengyel
1
wikitext
text/x-wiki
The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by
:$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$.
The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
{| class="wikitable"
! Distance Formula !! Illustration
|-
| style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$
$$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$.
$$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$.
$$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$.
$$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]]
|}
== In the Book ==
* Euclidean distances are discussed in Section 2.11.
== See Also ==
* [[Geometric norm]]
* [[Magnitude]]
* [[Attitude]]
e264d56128b0894d7496f161b2aef3bb9a75db43
370
353
2024-04-21T21:15:22Z
Eric Lengyel
1
wikitext
text/x-wiki
The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by
:$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$.
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ sum to $$n$$, the dimension of the algebra, a signed distance can be obtained by using the formula
:$$d(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$.
The following table lists formulas for distances between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
{| class="wikitable"
! Distance Formula !! Illustration
|-
| style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$
$$d(\mathbf p, \mathbf q) = \left\Vert \mathbf q_{xyz}p_w - \mathbf p_{xyz}q_w\right\Vert \mathbf 1 + |p_wq_w| {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$.
$$d(\mathbf p, \boldsymbol l) = \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf p_{xyz} + p_w \boldsymbol l_{\mathbf m}\right\Vert \mathbf 1 + \left\Vert p_w \boldsymbol l_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$.
$$d(\mathbf p, \mathbf g) = (\mathbf p \cdot \mathbf g)\mathbf 1 + \left\Vert p_w \mathbf g_{xyz} \right\Vert {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$.
$$d(\boldsymbol l, \mathbf k) = -(\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf m} + \boldsymbol l_{\mathbf m} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf k_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]]
|}
== In the Book ==
* Euclidean distances are discussed in Section 2.11.
== See Also ==
* [[Geometric norm]]
* [[Magnitude]]
* [[Attitude]]
3cc937a9c0845b2515b7e3640f5a37f1672c2d2b
371
370
2024-04-21T21:15:59Z
Eric Lengyel
1
wikitext
text/x-wiki
The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by
:$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$.
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ sum to $$n$$, the dimension of the algebra, a signed distance can be obtained by using the formula
:$$d(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$.
The following table lists formulas for distances between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
{| class="wikitable"
! Distance Formula !! Illustration
|-
| style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$
$$d(\mathbf p, \mathbf q) = \left\Vert \mathbf q_{xyz}p_w - \mathbf p_{xyz}q_w\right\Vert \mathbf 1 + |p_wq_w| {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$.
$$d(\mathbf p, \boldsymbol l) = \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf p_{xyz} + p_w \boldsymbol l_{\mathbf m}\right\Vert \mathbf 1 + \left\Vert p_w \boldsymbol l_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$.
$$d(\mathbf p, \mathbf g) = (\mathbf p \cdot \mathbf g)\mathbf 1 + \left\Vert p_w \mathbf g_{xyz} \right\Vert {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$.
$$d(\boldsymbol l, \mathbf k) = -(\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf m} + \boldsymbol l_{\mathbf m} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf k_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]]
|}
== In the Book ==
* Euclidean distances are discussed in Section 2.11.
== See Also ==
* [[Euclidean angle]]
* [[Geometric norm]]
* [[Magnitude]]
* [[Attitude]]
2c9a34eb8bbd587325af90c1ae422625cebeb281
Grade and antigrade
0
59
354
339
2024-04-13T23:31:12Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''grade'' of a basis element in a geometric algebra is equal to the number of basis vectors present in its factorization. An arbitrary element whose components all have the same grade is also said to have that grade.
The ''antigrade'' of a basis element is equal to the number of basis vectors absent from its factorization.
The grade of an element $$\mathbf x$$ is denoted by $$\operatorname{gr}(\mathbf x)$$, and the antigrade is denoted by $$\operatorname{ag}(\mathbf x)$$. In an ''n''-dimensional geometric algebra, it is always the case that
:$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ .
[[Scalars]] have grade 0, and [[antiscalars]] have grade ''n''. [[Vectors]] have grade 1, and [[antivectors]] have antigrade 1. [[Bivectors]] have grade 2, and [[trivectors]] have grade 3.
== In the Book ==
* Grade and antigrade are introduced in Section 2.1.4.
== See Also ==
* [[Duality]]
* [[Complements]]
9ddebc966004f22b406ca8fa8034d0027600255f
Complements
0
41
355
335
2024-04-13T23:31:28Z
Eric Lengyel
1
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation
:$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation
:$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ .
This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$.
Taking the right or left complement twice causes the sign to change according to the formula
:$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ .
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$
:$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|720px]]
== In the Book ==
* Complements are introduced in Section 2.2.
== See Also ==
* [[Duals]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
* [[Duality]]
b7581c7addc23987955d2cb39a7b0f05f5d40797
Metrics
0
168
356
338
2024-04-13T23:31:44Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by
:$$\mathfrak g = \begin{bmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 \\\end{bmatrix}$$ .
The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below.
[[Image:metric-rga-3d.svg|420px]]
The ''metric antiexomorphism matrix'' $$\mathbb G$$, often called the "antimetric", corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below.
[[Image:antimetric-rga-3d.svg|420px]]
The product of the metric exomorphism matrix $$\mathbf G$$ and metric antiexomorphism matrix $$\mathbb G$$ for any metric $$\mathfrak g$$ is always equal to the $$16 \times 16$$ identity matrix times the determinant of $$\mathfrak g$$. That is, $$\mathbf G \mathbb G = \det(\mathfrak g) \mathbf I$$.
The metric and antimetric determine [[bulk and weight]], [[duals]], [[dot products]], and [[geometric products]].
== In the Book ==
* The metric and antimetric are introduced in Sections 2.8.1 and 2.8.2.
== See Also ==
* [[Bulk and weight]]
* [[Duals]]
* [[Dot products]]
c1c88e8836a6b8fe1c77e8da99c7fddc2651398d
Bulk and weight
0
6
357
337
2024-04-13T23:32:00Z
Eric Lengyel
1
wikitext
text/x-wiki
The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''.
The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as
:$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$,
where $$\mathbf G$$ is the [[metric exomorphism matrix]]. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor.
The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as
:$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$,
where $$\mathbb G$$ is the [[metric antiexomorphism matrix]]. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor.
The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon.
An element is [[unitized]] when the magnitude of its weight is one.
The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$
|}
== In the Book ==
* Bulk and weight are introduced in Section 2.8.3.
== See Also ==
* [[Attitude]]
* [[Geometric norm]]
* [[Unitization]]
* [[Complements]]
* [[Duals]]
bd0a692b62d66dcdf69ab3cd93f12448b501cab6
394
357
2024-07-08T01:16:10Z
Eric Lengyel
1
wikitext
text/x-wiki
The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''.
The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode["segoe ui symbol"]{x25CF}$$, and it is defined as
:$$\mathbf u_\unicode["segoe ui symbol"]{x25CF} = \mathbf G \mathbf u$$,
where $$\mathbf G$$ is the [[metric exomorphism matrix]]. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor.
The weight is denoted by $$\mathbf u_\unicode["segoe ui symbol"]{x25CB}$$, and it is defined as
:$$\mathbf u_\unicode["segoe ui symbol"]{x25CB} = \mathbb G \mathbf u$$,
where $$\mathbb G$$ is the [[metric antiexomorphism matrix]]. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor.
The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon.
An element is [[unitized]] when the magnitude of its weight is one.
The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf z_\unicode["segoe ui symbol"]{x25CF} = x \mathbf 1$$
| style="padding: 12px;" | $$\mathbf z_\unicode["segoe ui symbol"]{x25CB} = y {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf p_\unicode["segoe ui symbol"]{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\mathbf p_\unicode["segoe ui symbol"]{x25CB} = p_w \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode["segoe ui symbol"]{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\boldsymbol l_\unicode["segoe ui symbol"]{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode["segoe ui symbol"]{x25CF} = g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf g_\unicode["segoe ui symbol"]{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode["segoe ui symbol"]{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\mathbf Q_\unicode["segoe ui symbol"]{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode["segoe ui symbol"]{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf F_\unicode["segoe ui symbol"]{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$
|}
== In the Book ==
* Bulk and weight are introduced in Section 2.8.3.
== See Also ==
* [[Attitude]]
* [[Geometric norm]]
* [[Unitization]]
* [[Complements]]
* [[Duals]]
5f50b9344176b5cea1e84b59cffdb93ef8bf4fc3
Duals
0
164
358
334
2024-04-13T23:32:14Z
Eric Lengyel
1
wikitext
text/x-wiki
Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''.
== Dual ==
The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ .
The bulk dual satisfies the following identity based on the [[geometric product]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ .
== Antidual ==
The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ .
The weight dual satisfies the following identity based on the [[geometric antiproduct]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ .
== Geometries ==
The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table.
{| class="wikitable"
! Type !! Bulk Dual !! Weight Dual
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$
|}
== In the Book ==
* Duals are introduced in Section 2.12.
== See Also ==
* [[Complements]]
* [[Bulk and weight]]
2587e78bdf262a4a895a174f5f53e5c463d4c133
386
358
2024-05-12T01:31:27Z
Eric Lengyel
1
wikitext
text/x-wiki
Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''.
== Dual ==
The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ .
The bulk dual satisfies the following identity based on the [[geometric product]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ .
== Antidual ==
The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ .
The weight dual satisfies the following identity based on the [[geometric antiproduct]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ .
The following table lists the bulk and weight duals for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Duals.svg|720px]]
== Geometries ==
The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table.
{| class="wikitable"
! Type !! Bulk Dual !! Weight Dual
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$
|}
== In the Book ==
* Duals are introduced in Section 2.12.
== See Also ==
* [[Complements]]
* [[Bulk and weight]]
91dc9a9b2977bc94f24fd007ff613c1451ba4443
388
386
2024-05-12T01:33:21Z
Eric Lengyel
1
wikitext
text/x-wiki
Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''.
== Dual ==
The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ .
The bulk dual satisfies the following identity based on the [[geometric product]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ .
== Antidual ==
The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ .
The weight dual satisfies the following identity based on the [[geometric antiproduct]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ .
== Duals of Basis Elements ==
The following table lists the bulk and weight duals for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Duals.svg|720px]]
== Duals of Geometries ==
The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table.
{| class="wikitable"
! Type !! Bulk Dual !! Weight Dual
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$
|}
== In the Book ==
* Duals are introduced in Section 2.12.
== See Also ==
* [[Complements]]
* [[Bulk and weight]]
154b436cbfb4d1834ab89e5f0f7e8f6d5459c879
Reverses
0
58
359
340
2024-04-13T23:32:30Z
Eric Lengyel
1
wikitext
text/x-wiki
''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations.
For any element $$\mathbf u$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf u$$, which we denote by $$\mathbf{\tilde u}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{423}$$ is $$\mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_4$$, which we would write as $$-\mathbf e_{423}$$since 324 is an odd permutation of 423. In general, the reverse of an element $$\mathbf u$$ is given by
:$$\mathbf{\tilde u} = (-1)^{\operatorname{gr}(\mathbf u)(\operatorname{gr}(\mathbf u) - 1)/2}\,\mathbf u$$ .
Symmetrically, for any element $$\mathbf u$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf u$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf u$$ is given by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{ag}(\mathbf u)(\operatorname{ag}(\mathbf u) - 1)/2}\,\mathbf u$$ .
The reverse and antireverse of any element $$\mathbf u$$ are related by
:$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}(-1)^{n(n-1)/2}\,\mathbf{\tilde u}$$ ,
where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse
:$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ ,
and similarly for the antireverse.
The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Reverses.svg|720px]]
== In the Book ==
* Reverses and antireverses are introduced in Section 3.4.
== See Also ==
* [[Complements]]
9b850ae9bb3c0622937561bf1d19656ccfc95c48
Geometric norm
0
38
360
342
2024-04-13T23:32:58Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm.
For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator.
== Bulk Norm ==
The ''bulk norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf u$$ with itself:
:$$\left\Vert\mathbf u\right\Vert_\unicode{x25CF} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}$$ .
An element that has a bulk norm of '''1''' is said to be ''bulk normalized''.
The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$
|}
== Weight Norm ==
The ''weight norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf u$$ with itself:
:$$\left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ .
(Note that the square root in this case is taken with respect to the geometric antiproduct.)
An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''.
The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$
|}
== Geometric Norm ==
The bulk norm and weight norm are summed to construct the ''geometric norm'' given by
:$$\left\Vert\mathbf u\right\Vert = \left\Vert\mathbf u\right\Vert_\unicode{x25CF} + \left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u} + \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ .
This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because
:$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ .
Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf u$$ is given by
:$$\widehat{\left\Vert\mathbf u\right\Vert} = \dfrac{\left\Vert\mathbf u\right\Vert}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf u\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}} + {\large\unicode{x1D7D9}}$$ .
The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$.
Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== In the Book ==
* The geometric norm is discussed in Section 2.10.
== See Also ==
* [[Geometric constraint]]
2ff0a8cc8a95e16e350832ee76aeac095b074e03
Geometric constraint
0
40
361
343
2024-04-13T23:33:12Z
Eric Lengyel
1
wikitext
text/x-wiki
An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric constraint'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is,
:$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$
and
:$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ .
The set of all elements satisfying the geometric constraint is closed under both the [[geometric product]] and [[geometric antiproduct]].
The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ due to the geometric constraint. Points and planes do not have any requirements—they have no constraints.
{| class="wikitable"
! Type !! Definition !! Requirement
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$xy = 0$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$
|}
== In the Book ==
* The geometric constraint is discussed in Section 3.4.3.
== See Also ==
* [[Geometric norm]]
e9bc1a9070bd0d11424fd7ff46b259ba85d59fd3
Unitization
0
39
362
344
2024-04-13T23:33:26Z
Eric Lengyel
1
wikitext
text/x-wiki
''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''.
An element $$\mathbf u$$ is unitized by calculating
:$$\mathbf{\hat u} = \dfrac{\mathbf u}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf u}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}}$$ .
In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one.
The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$p_w^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$
|}
== In the Book ==
* Unitization is discussed in Section 2.10.2.
== See Also ==
* [[Geometric norm]]
a23a139bf878ae9d8af31f39ff578be7c568102b
Point
0
81
364
302
2024-04-13T23:49:41Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:point.svg|400px|thumb|right|'''Figure 1.''' A point is the intersection of a 4D vector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ .
All points possess the [[geometric constraint]].
The [[bulk]] of a point is given by its $$x$$, $$y$$, and $$z$$ coordinates, and the [[weight]] of a point is given by its $$w$$ coordinate. A point is [[unitized]] when $$p_w^2 = 1$$.
When used as an operator in a sandwich with the [[geometric antiproduct]], a point is a specific kind of [[flector]] that performs an [[inversion]] through itself.
A [[translation]] operator $$\mathbf T$$ that moves a point $$\mathbf p$$ to the origin is given by
:$$\mathbf T = \underline{\mathbf p} \vee \mathbf e_{321} + 2\mathbf p \wedge \mathbf e_{321} = -p_{x\vphantom{y}} \mathbf e_{23} - p_y \mathbf e_{31} - p_{z\vphantom{y}} \mathbf e_{12} + 2p_w {\large\unicode{x1D7D9}}$$ .
== Points at Infinity ==
If the weight of a point is zero (i.e., its $$w$$ coordinate is zero), then the point is contained in the horizon infinitely far away in the direction $$(x, y, z)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
<br clear="right" />
== In the Book ==
* Homogeneous points are discussed in Section 2.4.1.
== See Also ==
* [[Line]]
* [[Plane]]
e0c9dba0462fe6bcbbfdb5d8a2f1752bde1029cf
Line
0
7
365
295
2024-04-13T23:50:04Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ .
The components $$(l_{vx}, l_{vy}, l_{vz})$$ correspond to the line's direction, and the components $$(l_{mx}, l_{my}, l_{mz})$$ correspond to the line's moment. (These are equivalent to the six Plücker coordinates of a line.) To satisfy the [[geometric constraint]], the components of $$\boldsymbol l$$ must satisfy the equation
:$$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ ,
which means that, when regarded as vectors, the direction and moment of a line are perpendicular.
The [[bulk]] of a line is given by its $$mx$$, $$my$$, and $$mz$$ coordinates, and the [[weight]] of a line is given by its $$vx$$, $$vy$$, and $$vz$$ coordinates. A line is [[unitized]] when $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$. The [[attitude]] of a line is the vector $$l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ corresponding to its direction.
When used as an operator in the sandwich with the [[geometric antiproduct]], a line is a specific kind of [[motor]] that performs a 180-degree rotation about itself.
<br clear="right" />
== Lines at Infinity ==
[[Image:line_infinity.svg|400px|thumb|right|'''Figure 2.''' A line at infinity consists of all points at infinity in directions perpendicular to the moment $$\mathbf m$$.]]
If the weight of a line is zero (i.e., its $$vx$$, $$vy$$, and $$vz$$ coordinates are all zero), then the line is contained in the horizon infinitely far away in all directions perpendicular to its moment $$\mathbf m = (l_{mx}, l_{my}, l_{mz})$$, regarded as a vector, as shown in Figure 2. Such a line cannot be unitized, but it can be normalized by dividing by its [[bulk norm]].
When the moment $$\mathbf m$$ is regarded as a bivector, a line at infinity can be thought of as all directions $$\mathbf v$$ parallel to the moment, which satisfy $$\mathbf m \wedge \mathbf v = 0$$.
<br clear="right" />
== Skew Lines ==
[[Image:skew_lines.svg|400px|thumb|right|'''Figure 3.''' The line $$\mathbf j$$ connecting skew lines.]]
Given two skew lines $$\boldsymbol l$$ and $$\mathbf k$$, as shown in Figure 3, a third line $$\mathbf j$$ that contains a point on each of the lines $$\boldsymbol l$$ and $$\mathbf k$$ is given by the axis of the [[motor]] $$\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}$$. The line $$\mathbf j$$ can be found by first calculating the line
:$$\mathbf i = [\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_- = (l_{vy} k_{vz} - l_{vz} k_{vy})\mathbf e_{41} + (l_{vz} k_{vx} - l_{vx} k_{vz})\mathbf e_{42} + (l_{vx} k_{vy} - l_{vy} k_{vx})\mathbf e_{43} + (l_{vy} k_{mz} - l_{vz} k_{my} + l_{my} k_{vz} - l_{mz} k_{vy})\mathbf e_{23} + (l_{vz} k_{mx} - l_{vx} k_{mz} + l_{mz} k_{vx} - l_{mx} k_{vz})\mathbf e_{31} + (l_{vx} k_{my} - l_{vy} k_{mx} + l_{mx} k_{vy} - l_{my} k_{vx})\mathbf e_{12}$$
and then orthogonalizing its direction and moment to obtain
:$$\mathbf j = i_{vx} \mathbf e_{41} + i_{vy} \mathbf e_{42} + i_{vz} \mathbf e_{43} + (i_{mx} - s i_{vx})\mathbf e_{23} + (i_{my} - s i_{vy})\mathbf e_{31} + (i_{mz} - s i_{vz})\mathbf e_{12}$$ ,
where
:$$s = \dfrac{i_{vx}i_{mx} + i_{vy}i_{my} + i_{vz}i_{mz}}{i_{vx}^2 + i_{vy}^2 + i_{vz}^2}$$ .
If $$l_{vx}k_{vx} + l_{vy}k_{vy} + l_{vz}k_{vz} = 0$$, meaning that the directions of the two lines are perpendicular, then $$\mathbf j = \mathbf i$$.
The direction of $$\mathbf j$$ is perpendicular to the directions of $$\boldsymbol l$$ and $$\mathbf k$$, and it contains the closest points of approach between $$\boldsymbol l$$ and $$\mathbf k$$. The points themselves can then be found by calculating $$(\mathbf j \wedge \operatorname{att}(\boldsymbol l)) \vee \mathbf k$$ and $$(\mathbf j \wedge \operatorname{att}(\mathbf k)) \vee \boldsymbol l$$, where $$\operatorname{att}$$ is the [[attitude]] function.
<br clear="right" />
== In the Book ==
* Homogeneous lines are discussed in Section 2.4.2.
== See Also ==
* [[Point]]
* [[Plane]]
6d292ea6e809dd9bad914d8d82224b1bfbc89247
Plane
0
61
366
304
2024-04-13T23:50:25Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ .
All planes possess the [[geometric constraint]].
The [[bulk]] of a plane is given by its $$w$$ coordinate, and the [[weight]] of a plane is given by its $$x$$, $$y$$, and $$z$$ coordinates. A plane is [[unitized]] when $$g_x^2 + g_y^2 + g_z^2 = 1$$. The [[attitude]] of a plane is the bivector $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ corresponding to its normal.
When used as an operator in the sandwich with the [[geometric antiproduct]], a plane is a specific kind of [[flector]] that performs a [[reflection]] through itself.
A [[dual translation]] operator $$\mathbf T$$ that moves a plane $$\mathbf g$$ to the horizon is given by
:$$\mathbf T = \underline{\mathbf g} \wedge \mathbf e_{4} + 2\mathbf g \vee \mathbf e_4 = g_{x\vphantom{y}} \mathbf e_{41} + g_y \mathbf e_{42} + g_{z\vphantom{y}} \mathbf e_{43} + 2g_w$$ .
== Plane at Infinity ==
If the weight of a plane is zero (i.e., its $$x$$, $$y$$, and $$z$$ coordinates are all zero), then the plane lies at infinity in all directions. Such a plane is normalized when $$g_w = \pm 1$$. This is the ''horizon'' of three-dimensional space.
<br clear="right" />
== In the Book ==
* Homogeneous planes are discussed in Section 2.4.3.
== See Also ==
* [[Point]]
* [[Line]]
ebc9f12b63c4877b0b21ce3b6ef28afe3445bfd1
395
366
2024-07-08T01:16:47Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ .
All planes possess the [[geometric constraint]].
The [[bulk]] of a plane is given by its $$w$$ coordinate, and the [[weight]] of a plane is given by its $$x$$, $$y$$, and $$z$$ coordinates. A plane is [[unitized]] when $$g_x^2 + g_y^2 + g_z^2 = 1$$. The [[attitude]] of a plane is the bivector $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ corresponding to its normal.
When used as an operator in the sandwich with the [[geometric antiproduct]], a plane is a specific kind of [[flector]] that performs a [[reflection]] through itself.
A [[complement translation]] operator $$\mathbf T$$ that moves a plane $$\mathbf g$$ to the horizon is given by
:$$\mathbf T = \underline{\mathbf g} \wedge \mathbf e_{4} + 2\mathbf g \vee \mathbf e_4 = g_{x\vphantom{y}} \mathbf e_{41} + g_y \mathbf e_{42} + g_{z\vphantom{y}} \mathbf e_{43} + 2g_w$$ .
== Plane at Infinity ==
If the weight of a plane is zero (i.e., its $$x$$, $$y$$, and $$z$$ coordinates are all zero), then the plane lies at infinity in all directions. Such a plane is normalized when $$g_w = \pm 1$$. This is the ''horizon'' of three-dimensional space.
<br clear="right" />
== In the Book ==
* Homogeneous planes are discussed in Section 2.4.3.
== See Also ==
* [[Point]]
* [[Line]]
c3fc9874189bdc110ab61c53d89426b8b573b2fb
Motor
0
3
367
311
2024-04-13T23:51:11Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]]
A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ .
To satisfy the [[geometric constraint]], the components of $$\mathbf Q$$ must satisfy the equation
:$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ .
Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions.
An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]].
== Simple Motors ==
If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line.
In the case of a pure translation, the motor $$\mathbf T$$ is given by
:$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ ,
and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$.
In the case of a pure rotation, the motor $$\mathbf R$$ is given by
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$.
== Motors Built from Geometry ==
Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table.
{| class="wikitable"
! Motor|| Description
|-
| style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$.
$$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
$$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}
=\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\
+\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\
+\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\
+\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$.
$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$.
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
|}
== Norm ==
The [[bulk norm]] of a motor $$\mathbf Q$$ is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ .
The [[geometric norm]] of a motor $$\mathbf Q$$ is thus
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$.
== Exponential Form ==
A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ .
This expands to
:$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ ,
and replacing the [[line]] $$\boldsymbol l$$ with its components gives us
:$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ .
A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ .
The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation.
== Logarithm ==
Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations
:$$Q_{mw} = -d\sin\phi$$
:$$Q_{vw} = \cos\phi$$ .
Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then,
:$$d = -\dfrac{Q_{mw}}{s}$$
:$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ .
If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required.
The components of $$\boldsymbol l$$ are then given by
:$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$
:$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ .
In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$.
== Square Root ==
The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case.
Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ ,
where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ .
Applying several more trigonometric identities, we now observe
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ .
The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ ,
which means that
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ .
The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields
:$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ .
The square root of a general motor $$\mathbf Q$$ is thus given by
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ .
If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ .
== Factorization ==
Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating
:$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ .
The motor $$\mathbf T$$ is then given by
:$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ .
The original motor $$\mathbf Q$$ can now be expressed as
:$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ ,
where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors.
== Conversion from Motor to Matrix ==
Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices
:$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Motor ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant +1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$
:$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$
:$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$
:$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$
:$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$
:$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$
:$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$
:$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$
:$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$
If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate
:$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ ,
where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by
$$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$
$$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$
$$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$
$$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ .
== Motor Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table, where $$\mathbf v = (Q_{vx}, Q_{vy}, Q_{vz})$$ and $$\mathbf m = (Q_{mx}, Q_{my}, Q_{mz})$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$
$$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a - Q_{mw}p_w\mathbf v)$$
$$p'_w = p_w$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$
$$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$
$$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$
$$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(Q_{mw}\mathbf a + Q_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$
$$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz} + Q_{mw}\mathbf g_{xyz}) \cdot \mathbf v - Q_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$
|}
== In the Book ==
* General motion operators (motors) are discussed in Section 3.6.
== See Also ==
* [[Flector]]
* [[Translation]]
* [[Rotation]]
51b72f07b4f42ee03d0cdf8164593a514753c083
Flector
0
44
368
312
2024-04-13T23:51:36Z
Eric Lengyel
1
wikitext
text/x-wiki
[[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]]
A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotoreflections. The name flector is a portmanteau of ''reflection operator''. Flectors cannot perform proper isometries that do not include [[reflections]]; those are instead performed by operators called [[motors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form
:$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ ,
which is the sum of a [[point]] $$\mathbf p$$ and a [[plane]] $$\mathbf g$$. To satisfy the [[geometric constraint]], the components of $$\mathbf F$$ must satisfy the equation
:$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ ,
and this means that the [[point]] $$\mathbf p$$ must lie in the [[plane]] $$\mathbf g$$.
An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all [[motors]] in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing [[inversion]] through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$.
== Norm ==
The [[bulk norm]] of a flector $$\mathbf F$$ is given by
:$$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{\mathbf F \mathbin{\unicode{x25CF}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = \sqrt{\mathbf F \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ .
The [[geometric norm]] of a flector $$\mathbf F$$ is thus
:$$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A flector is [[unitized]] when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$.
== Trigonometric Form ==
A general flector $$\mathbf F$$ can be expressed in terms of a [[unitized]] [[point]] $$\mathbf p$$ and a [[unitized]] [[plane]] $$\mathbf g$$ as
:$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ .
This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane.
== Factorization ==
Any [[unitized]] flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple [[motor]] $$\mathbf Q$$ and a [[plane]] by calculating
:$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ ,
where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by
:$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ ,
which is always unitized. The original flector $$\mathbf F$$ can now be expressed as
:$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ .
== Conversion from Flector to Matrix ==
Given a specific [[Unitization | unitized]] flector $$\mathbf G$$, define the matrices
:$$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Flector ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant −1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$
:$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$
:$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$
:$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$
:$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$
:$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$
:$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$
:$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$
:$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$
If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate
:$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ ,
where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by
$$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$
$$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$
$$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$
$$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ .
== Flector Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] flector $$\mathbf F$$ as shown in the following table, where $$\mathbf p = (F_{px}, F_{py}, F_{pz})$$ and $$\mathbf g = (F_{gx}, F_{gy}, F_{gz})$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf q_{xyz} - q_w\mathbf p$$
$$\mathbf q'_{xyz} = \mathbf q_{xyz} + 2(F_{pw}\mathbf a + \mathbf g \times \mathbf a + F_{gw}q_w\mathbf g)$$
$$q'_w = -q_w$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\mathbf k =\, &k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} \\ +\, &k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf k_{\mathbf v}$$
$$\mathbf b = \mathbf g \times \mathbf k_{\mathbf m}$$
$$\mathbf c = \mathbf p \times \mathbf k_{\mathbf v}$$
$$\mathbf k'_{\mathbf v} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf k_{\mathbf v}$$
$$\mathbf k'_{\mathbf m} = 2[F_{gw}\mathbf a + F_{pw}(\mathbf c - \mathbf b) + \mathbf g \times (\mathbf c - \mathbf b) + \mathbf p \times \mathbf a] - \mathbf k_{\mathbf m}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf h_{xyz}$$
$$\mathbf h'_{xyz} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf h_{xyz}$$
$$h'_w = h_w + 2[(\mathbf h_{xyz} \times \mathbf p - F_{gw}\mathbf h_{xyz}) \cdot \mathbf g + F_{pw}(\mathbf p \cdot \mathbf h_{xyz})]$$
|}
== In the Book ==
* General reflection operators (flectors) are discussed in Section 3.7.
== See Also ==
* [[Motor]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
762b150f2da64eca276a9f1b9ec6db22ddd495fc
Transformation groups
0
25
369
192
2024-04-13T23:52:40Z
Eric Lengyel
1
wikitext
text/x-wiki
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
or by a [[flector]] $$\mathbf F$$ of the form
:$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ .
Under the [[geometric antiproduct]] $$\unicode{x27C7}$$, arbitrary products of these operators form the Euclidean group E(3) with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$.
Symmetrically, every reciprocal Euclidean isometry of 3D space can be represented by a [[reciprocal motor]] $$\mathbf Q$$ of the form
:$$\mathbf Q = Q_{vx} \mathbf e_{23} + Q_{vy} \mathbf e_{31} + Q_{vz} \mathbf e_{12} - Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{41} + Q_{my} \mathbf e_{42} + Q_{mz} \mathbf e_{43} - Q_{mw} \mathbf 1$$
or by a [[reciprocal flector]] $$\mathbf F$$ of the form
:$$\mathbf F = F_{px} \mathbf e_{423} + F_{py} \mathbf e_{431} + F_{pz} \mathbf e_{412} + F_{pw} \mathbf e_{321} - F_{gx} \mathbf e_1 - F_{gy} \mathbf e_2 - F_{gz} \mathbf e_3 - F_{gw} \mathbf e_4$$ .
Under the [[geometric product]] $$\unicode{x27D1}$$, arbitrary products of these operators form the reciprocal Euclidean group RE(3) with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde F}$$.
The [[geometric product]] corresponds to transform composition in the group RE(3), and the [[geometric antiproduct]] corresponds to transform composition in the group E(3). [[Reflections]] across planes are represented by [[antivectors]] (having [[antigrade]] one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, [[reciprocal reflections]] across points are represented by [[vectors]] (having [[grade]] one), and they join at higher-dimensional invariants under the geometric product. A sandwich product $$\mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ transforms the space of $$\mathbf x$$ with an element of RE(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of E(3). Symmetrically, a sandwich product $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ transforms the space of $$\mathbf x$$ with an element of E(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of RE(3).
The groups E(''n'') and RE(''n'') are isomorphic, and they each contain the orthogonal group O(''n'') as a common subgroup. The [[complement]] operation provides a two-way mapping between transforms associated with members of E(''n'') and RE(''n''). The groups E(''n'') and RE(''n'') have a number of subgroups, and the hierarchical relationships among them are shown in the figure below. In particular, the Euclidean group E(''n'') contains the special Euclidean subgroup SE(''n'') consisting of all combinations of ordinary [[rotations]] and [[translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even antigrade. Correspondingly, the reciprocal Euclidean group RE(''n'') contains the reciprocal special Euclidean subgroup RSE(''n'') consisting of all combinations of [[reciprocal rotations]] and [[reciprocal translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even grade. The subgroups SE(''n'') and RSE(''n'') further contain translation subgroups T(''n'') and RT(''n''), respectively.
[[Image:Groups.svg|800px]]
Transforms about invariants containing the origin are the same in both E(''n'') and RE(''n''), and they constitute the common subgroup O(''n''). Every member of O(''n'') has a representation that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, conventional [[quaternions]] $$\mathbf q$$ have two representations, one that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ and another that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$.
In terms of matrix multiplication, a general element of the group E(''n'') transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form
:$$\begin{bmatrix} \mathbf M_{n \times n} & \boldsymbol \tau_{n \times 1} \\ \mathbf 0_{1 \times n} & 1 \end{bmatrix}$$ ,
where the $$n \times n$$ submatrix $$\mathbf M$$ is orthogonal. A general element of the corresponding group RE(''n'') transforms points with matrices of the form
:$$\begin{bmatrix} \mathbf M_{n \times n} & \mathbf 0_{n \times 1} \\ \boldsymbol \tau_{1 \times n} & 1 \end{bmatrix}$$ .
In the special subgroups SE(''n'') and RSE(''n''), the submatrix $$\mathbf M$$ has a determinant of +1. In the translation subgroups T(''n'') and RT(''n''), $$\mathbf M$$ is the identity matrix. Finally, when $$\boldsymbol \tau = \mathbf 0$$, the two matrices above have the same form and belong to O(''n'').
The isomorphic mapping between E(''n'') and RE(''n'') is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of E(''n''), then the corresponding element of RE(''n'') is given by $$(\mathbf M^{-1})^{\text T}$$. Of course, this operation is an involution, and the mapping works both ways.
== In the Book ==
* Transformation groups are discussed in Section 3.9.2.
== See Also ==
* [[Motor]]
* [[Flector]]
a2c4c74bda34871756b039bc2b74f576a350169b
File:Angle plane plane.svg
6
173
372
2024-04-21T21:27:10Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Angle plane line.svg
6
174
373
2024-04-21T21:27:20Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Angle line line.svg
6
175
374
2024-04-21T21:27:29Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Euclidean angle
0
176
375
2024-04-21T21:27:37Z
Eric Lengyel
1
Created page with "The cosine of the Euclidean angle $$\cos \phi(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$\cos \phi(\mathbf a, \mathbf b) = \left\Vert \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \right\Vert_\unicode{x25CB}\left\Vert\mathbf b \right\Vert_\unicode{x25CB}$$. In the case that the grades of $$\mathbf a$$ and $$\mathbf b..."
wikitext
text/x-wiki
The cosine of the Euclidean angle $$\cos \phi(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by
:$$\cos \phi(\mathbf a, \mathbf b) = \left\Vert \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \right\Vert_\unicode{x25CB}\left\Vert\mathbf b \right\Vert_\unicode{x25CB}$$.
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are equal, a signed angle can be obtained by using the formula
:$$\cos \phi(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} + \left\Vert\mathbf a \right\Vert_\unicode{x25CB}\left\Vert\mathbf b \right\Vert_\unicode{x25CB}$$.
The following table lists formulas for angles between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[lines]] and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
:$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
{| class="wikitable"
! Angle Formula !! Illustration
|-
| style="padding: 12px;" | Cosine of angle $$\phi$$ between planes $$\mathbf g$$ and $$\mathbf h$$.
$$\cos \phi(\mathbf g, \mathbf h) = (\mathbf g_{xyz} \cdot \mathbf h_{xyz}) \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode{x25CB}\left\Vert\mathbf h \right\Vert_\unicode{x25CB}$$
| style="padding: 12px; text-align: center;" | [[Image:angle_plane_plane.svg|122px]]
|-
| style="padding: 12px;" | Cosine of angle $$\phi$$ between plane $$\mathbf g$$ and line $$\boldsymbol l$$.
$$\cos \phi(\mathbf g, \boldsymbol l) = \left\Vert \mathbf g_{xyz} \times \boldsymbol l_{\mathbf v}\right\Vert \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode{x25CB}\left\Vert\boldsymbol l \right\Vert_\unicode{x25CB}$$
| style="padding: 12px; text-align: center;" | [[Image:angle_plane_line.svg|250px]]
|-
| style="padding: 12px;" | Cosine of angle $$\phi$$ between lines $$\boldsymbol l$$ and line $$\mathbf k$$.
$$\cos \phi(\boldsymbol l, \mathbf k) = (\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert\boldsymbol l \right\Vert_\unicode{x25CB}\left\Vert\mathbf k \right\Vert_\unicode{x25CB}$$
| style="padding: 12px; text-align: center;" | [[Image:angle_line_line.svg|250px]]
|}
== In the Book ==
* Euclidean angles are discussed in Section 2.13.3.
== See Also ==
* [[Euclidean distance]]
* [[Geometric norm]]
* [[Magnitude]]
* [[Interior products]]
ee1f5bb835415a72726c7ba377de719666d3a724
376
375
2024-04-21T21:28:15Z
Eric Lengyel
1
wikitext
text/x-wiki
The cosine of the Euclidean angle $$\cos \phi(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by
:$$\cos \phi(\mathbf a, \mathbf b) = \left\Vert \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \right\Vert_\unicode{x25CB}\left\Vert\mathbf b \right\Vert_\unicode{x25CB}$$.
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are equal, a signed angle can be obtained by using the formula
:$$\cos \phi(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} + \left\Vert\mathbf a \right\Vert_\unicode{x25CB}\left\Vert\mathbf b \right\Vert_\unicode{x25CB}$$.
The following table lists formulas for angles between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[lines]] and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
:$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
{| class="wikitable"
! Angle Formula !! Illustration
|-
| style="padding: 12px;" | Cosine of angle $$\phi$$ between planes $$\mathbf g$$ and $$\mathbf h$$.
$$\cos \phi(\mathbf g, \mathbf h) = (\mathbf g_{xyz} \cdot \mathbf h_{xyz}) \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode{x25CB}\left\Vert\mathbf h \right\Vert_\unicode{x25CB}$$
| style="padding: 12px; text-align: center;" | [[Image:angle_plane_plane.svg|200px]]
|-
| style="padding: 12px;" | Cosine of angle $$\phi$$ between plane $$\mathbf g$$ and line $$\boldsymbol l$$.
$$\cos \phi(\mathbf g, \boldsymbol l) = \left\Vert \mathbf g_{xyz} \times \boldsymbol l_{\mathbf v}\right\Vert \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode{x25CB}\left\Vert\boldsymbol l \right\Vert_\unicode{x25CB}$$
| style="padding: 12px; text-align: center;" | [[Image:angle_plane_line.svg|200px]]
|-
| style="padding: 12px;" | Cosine of angle $$\phi$$ between lines $$\boldsymbol l$$ and line $$\mathbf k$$.
$$\cos \phi(\boldsymbol l, \mathbf k) = (\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert\boldsymbol l \right\Vert_\unicode{x25CB}\left\Vert\mathbf k \right\Vert_\unicode{x25CB}$$
| style="padding: 12px; text-align: center;" | [[Image:angle_line_line.svg|200px]]
|}
== In the Book ==
* Euclidean angles are discussed in Section 2.13.3.
== See Also ==
* [[Euclidean distance]]
* [[Geometric norm]]
* [[Magnitude]]
* [[Interior products]]
227ec321839395d0fdb4db9e3ab69ca49985c748
Main Page
0
1
377
324
2024-04-21T21:28:45Z
Eric Lengyel
1
/* Products and other binary operations */
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Metrics]]
* [[Bulk and weight]]
* [[Duals]]
* [[Reverses]]
* [[Attitude]]
* [[Geometric norm]]
* [[Geometric constraint]]
* [[Unitization]]
* [[Duality]]
=== Products and other binary operations ===
* [[Exterior products]]
* [[Dot products]]
* [[Interior products]]
* [[Geometric products]]
* [[Join and meet]]
* [[Projections]]
* [[Euclidean distance]]
* [[Euclidean angle]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
=== Research Articles ===
* [[Projective Geometric Algebra Done Right]]
* [[Symmetries in Projective Geometric Algebra]]
* [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]]
6af5d605af1774829e001aa04a50cd9eb5ca8e3b
Exercises
0
177
378
2024-04-29T01:48:07Z
Eric Lengyel
1
Created page with "These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated'']. == Exercises for Chapter 2 == '''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$. '''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective alg..."
wikitext
text/x-wiki
These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated''].
== Exercises for Chapter 2 ==
'''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$.
'''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product.
460cae9e549ae35d33981813cebca50b42a41a56
379
378
2024-04-29T01:53:07Z
Eric Lengyel
1
wikitext
text/x-wiki
These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated''].
== Exercises for Chapter 2 ==
'''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$.
'''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product.
'''3.''' Suppose that the 4D trivectors $$\mathbf g$$ and $$\mathbf h$$ represent parallel planes in 3D space. Show that the magnitude of the moment of $$\mathbf g \vee \mathbf h$$ is the distance between the planes multiplied by both their weights.
'''4.''' Let $$\mathbf m$$ be a $$4 \times 4$$ matrix that performs a rotation about the $$z$$ axis in homogeneous coordinates. Calculate the $$16 \times 16$$ exomorphism matrix $$\mathbf M$$ corresponding to $$\mathbf m$$.
3c31a2ad4c3a4bd62d4cd5fb8c1a119db947028b
381
379
2024-05-04T04:36:46Z
Eric Lengyel
1
wikitext
text/x-wiki
These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated''].
== Exercises for Chapter 2 ==
'''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$.
'''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product.
'''3.''' Suppose that the 4D trivectors $$\mathbf g$$ and $$\mathbf h$$ represent parallel planes in 3D space. Show that the magnitude of the moment of $$\mathbf g \vee \mathbf h$$ is the distance between the planes multiplied by both their weights.
'''4.''' Let $$\mathbf m$$ be a $$4 \times 4$$ matrix that performs a rotation about the $$z$$ axis in homogeneous coordinates. Calculate the $$16 \times 16$$ exomorphism matrix $$\mathbf M$$ corresponding to $$\mathbf m$$.
'''5.''' Suppose that $$\mathbf G$$ is a metric exomorphism. Use the fact that $$\mathbf G$$ is an exomorphism to prove that the associated antimetric $$\mathbb G$$ must satisfy $$\mathbb G(\mathbf a \vee \mathbf b) = \mathbb G\mathbf a \vee \mathbb G\mathbf b$$ for any $$\mathbf a$$ and $$\mathbf b$$.
'''6.''' Suppose that the metric tensor $$\mathfrak g$$ is invertible. Show that the wedge and antiwedge products satisfy the relationship $$\mathbf a \vee \mathbf b = (\mathbf a^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605})^\unicode["segoe ui symbol"]{x2606}$$.
'''7.''' Suppose that $$\mathbf a$$ and $$\mathbf b$$ are basis elements of an $$n$$-dimensional exterior algebra and $$\operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b) = n$$. Show that $$(\mathbf a \wedge \mathbf b)^\unicode["segoe ui symbol"]{x2605} = \mathbf a^\unicode["segoe ui symbol"]{x2605} \mathbin{\unicode{x25CF}} \mathbf b$$.
f21c2ac11de147acd2855c07af5a709f78a2657c
382
381
2024-05-04T04:38:24Z
Eric Lengyel
1
wikitext
text/x-wiki
These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated''].
== Exercises for Chapter 2 ==
'''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$.
'''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product.
'''3.''' Suppose that the 4D trivectors $$\mathbf g$$ and $$\mathbf h$$ represent parallel planes in 3D space. Show that the magnitude of the moment of $$\mathbf g \vee \mathbf h$$ is the distance between the planes multiplied by both their weights.
'''4.''' Let $$\mathbf m$$ be a $$4 \times 4$$ matrix that performs a rotation about the $$z$$ axis in homogeneous coordinates. Calculate the $$16 \times 16$$ exomorphism matrix $$\mathbf M$$ corresponding to $$\mathbf m$$.
'''5.''' Suppose that $$\mathbf G$$ is a metric exomorphism. Use the fact that $$\mathbf G$$ is an exomorphism to prove that the associated antimetric $$\mathbb G$$ must satisfy $$\mathbb G(\mathbf a \vee \mathbf b) = \mathbb G\mathbf a \vee \mathbb G\mathbf b$$ for any $$\mathbf a$$ and $$\mathbf b$$.
'''6.''' Suppose that the metric tensor $$\mathfrak g$$ is invertible. Show that the wedge and antiwedge products satisfy the relationship $$\mathbf a \vee \mathbf b = (\mathbf a^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605})^\unicode["segoe ui symbol"]{x2606}$$.
'''7.''' Suppose that $$\mathbf a$$ and $$\mathbf b$$ are basis elements of an $$n$$-dimensional exterior algebra and $$\operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b) = n$$. Show that $$(\mathbf a \wedge \mathbf b)^\unicode["segoe ui symbol"]{x2605} = \mathbf a^\unicode["segoe ui symbol"]{x2605} \mathbin{\unicode{x25CF}} \mathbf b$$.
'''8.''' Show that the geometric norm is idempotent. That is, show that $$\Vert \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}} \Vert = \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}}$$.
dea15249d28fbc13b5a15724d76907c61ccf4289
383
382
2024-05-04T04:46:57Z
Eric Lengyel
1
wikitext
text/x-wiki
These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated''].
== Exercises for Chapter 2 ==
'''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$.
'''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product.
'''3.''' Suppose that the 4D trivectors $$\mathbf g$$ and $$\mathbf h$$ represent parallel planes in 3D space. Show that the magnitude of the moment of $$\mathbf g \vee \mathbf h$$ is the distance between the planes multiplied by both their weights.
'''4.''' Let $$\mathbf m$$ be a $$4 \times 4$$ matrix that performs a rotation about the $$z$$ axis in homogeneous coordinates. Calculate the $$16 \times 16$$ exomorphism matrix $$\mathbf M$$ corresponding to $$\mathbf m$$.
'''5.''' Suppose that $$\mathbf G$$ is a metric exomorphism. Use the fact that $$\mathbf G$$ is an exomorphism to prove that the associated antimetric $$\mathbb G$$ must satisfy $$\mathbb G(\mathbf a \vee \mathbf b) = \mathbb G\mathbf a \vee \mathbb G\mathbf b$$ for any $$\mathbf a$$ and $$\mathbf b$$.
'''6.''' Suppose that the metric tensor $$\mathfrak g$$ is invertible. Show that the wedge and antiwedge products satisfy the relationship $$\mathbf a \vee \mathbf b = (\mathbf a^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605})^\unicode["segoe ui symbol"]{x2606}$$.
'''7.''' Suppose that $$\mathbf a$$ and $$\mathbf b$$ are basis elements of an $$n$$-dimensional exterior algebra and $$\operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b) = n$$. Show that $$(\mathbf a \wedge \mathbf b)^\unicode["segoe ui symbol"]{x2605} = \mathbf a^\unicode["segoe ui symbol"]{x2605} \mathbin{\unicode{x25CF}} \mathbf b$$.
'''8.''' Show that the geometric norm is idempotent. That is, show that $$\Vert \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}} \Vert = \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}}$$.
'''9.''' Derive the relationship between left and right interior products shown in Equation (2.110).
'''10.''' Derive Equation (2.159), which is the expansion analog of Equation (2.129).
'''11.''' Derive a formula for $$\mathbf u^{\unicode["segoe ui symbol"]{x2605}\unicode["segoe ui symbol"]{x2605}}$$, the double bulk dual of $$\mathbf u$$, that uses only $$\operatorname{gr}(\mathbf u)$$, $$\operatorname{ag}(\mathbf u)$$, and the determinant of the metric tensor $$\mathfrak g$$.
ed3050eaa552f67869448d148aa6f6f9efff5a95
384
383
2024-05-04T04:49:27Z
Eric Lengyel
1
wikitext
text/x-wiki
These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated''].
== Exercises for Chapter 2 ==
'''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$.
'''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product.
'''3.''' Suppose that the 4D trivectors $$\mathbf g$$ and $$\mathbf h$$ represent parallel planes in 3D space. Show that the magnitude of the moment of $$\mathbf g \vee \mathbf h$$ is the distance between the planes multiplied by both their weights.
'''4.''' Let $$\mathbf m$$ be a $$4 \times 4$$ matrix that performs a rotation about the $$z$$ axis in homogeneous coordinates. Calculate the $$16 \times 16$$ exomorphism matrix $$\mathbf M$$ corresponding to $$\mathbf m$$.
'''5.''' Suppose that $$\mathbf G$$ is a metric exomorphism. Use the fact that $$\mathbf G$$ is an exomorphism to prove that the associated antimetric $$\mathbb G$$ must satisfy $$\mathbb G(\mathbf a \vee \mathbf b) = \mathbb G\mathbf a \vee \mathbb G\mathbf b$$ for any $$\mathbf a$$ and $$\mathbf b$$.
'''6.''' Suppose that the metric tensor $$\mathfrak g$$ is invertible. Show that the wedge and antiwedge products satisfy the relationship $$\mathbf a \vee \mathbf b = (\mathbf a^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605})^\unicode["segoe ui symbol"]{x2606}$$.
'''7.''' Suppose that $$\mathbf a$$ and $$\mathbf b$$ are basis elements of an $$n$$-dimensional exterior algebra and $$\operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b) = n$$. Show that $$(\mathbf a \wedge \mathbf b)^\unicode["segoe ui symbol"]{x2605} = \mathbf a^\unicode["segoe ui symbol"]{x2605} \mathbin{\unicode{x25CF}} \mathbf b$$.
'''8.''' Show that the geometric norm is idempotent. That is, show that $$\Vert \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}} \Vert = \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}}$$.
'''9.''' Derive the relationship between left and right interior products shown in Equation (2.110).
'''10.''' Derive Equation (2.159), which is the expansion analog of Equation (2.129).
'''11.''' Derive a formula for $$\mathbf u^{\unicode["segoe ui symbol"]{x2605}\unicode["segoe ui symbol"]{x2605}}$$, the double bulk dual of $$\mathbf u$$, that uses only $$\operatorname{gr}(\mathbf u)$$, $$\operatorname{ag}(\mathbf u)$$, and the determinant of the metric tensor $$\mathfrak g$$.
'''12.''' Assuming that the antivector basis elements are written in the same order as their vector complements, prove that the $$(n - 1)$$-th compound matrix $$C_{n - 1}(\mathbf m)$$ of a matrix $$\mathbf m$$ is always equal to the adjugate transpose of $$\mathbf m$$.
2a4a38482266418b45f68c386c4c9385043bed7e
File:Complements.svg
6
42
385
273
2024-05-12T01:30:15Z
Eric Lengyel
1
Eric Lengyel uploaded a new version of [[File:Complements.svg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Duals.svg
6
178
387
2024-05-12T01:31:38Z
Eric Lengyel
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Errata
0
179
389
2024-05-12T19:10:30Z
Eric Lengyel
1
Created page with "This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page. == First Printing == * '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. * '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, s..."
wikitext
text/x-wiki
This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page.
== First Printing ==
* '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0.
* '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54.
* '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35.
402fa5765a80043734439b0f55d5e030546dda14
390
389
2024-05-12T20:30:05Z
Eric Lengyel
1
wikitext
text/x-wiki
This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page.
== Second Printing ==
There are no known errata in the second printing. If you have found something, please email the author (lengyel@terathon.com).
== First Printing ==
* '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0.
* '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54.
* '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35.
dde08ec23f3d6ac78d5fa739ca2b61ab48c1e041
391
390
2024-05-13T16:50:37Z
Eric Lengyel
1
wikitext
text/x-wiki
This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page.
== Second Printing ==
There are no known errata in the second printing. If you have found something, please email the author (lengyel@terathon.com).
== First Printing ==
* '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. The table should look like the one on the wiki page for [[duals]].
* '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54.
* '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35.
7a9ad95e9bcef3d655b481f0e3bac7d5e25c0b8d
392
391
2024-07-02T23:39:51Z
Eric Lengyel
1
wikitext
text/x-wiki
This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page. If you believe you have found an error that should be added to this list, please email the author (lengyel@terathon.com).
== Second Printing and Earlier ==
* '''Page 248.''' In Equation (5.27), the operator $$\mathbf D$$ should be dualized as $$\mathbf D^\unicode["segoe ui symbol"]{x2605}$$. It should also be dualized in the first factor of the sandwich product in the sentence that follows this equation.
== First Printing ==
* '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. The table should look like the one on the wiki page for [[duals]].
* '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54.
* '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35.
7269e1afa92d50d55b85196fe7ed0d2597968239
393
392
2024-07-08T01:13:24Z
Eric Lengyel
1
wikitext
text/x-wiki
This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page. If you believe you have found an error that should be added to this list, please email the author (lengyel@terathon.com).
== Third Printing and Earlier ==
* '''Page 70.''' In the line following Equation (2.71), the product of the bulks should use the antiwedge product and appear as $$\mathbf a_\unicode["segoe ui symbol"]{x25CF} \vee \mathbf b_\unicode["segoe ui symbol"]{x25CF}$$.
== Second Printing and Earlier ==
* '''Page 248.''' In Equation (5.27), the operator $$\mathbf D$$ should be dualized as $$\mathbf D^\unicode["segoe ui symbol"]{x2605}$$. It should also be dualized in the first factor of the sandwich product in the sentence that follows this equation.
== First Printing ==
* '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. The table should look like the one on the wiki page for [[duals]].
* '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54.
* '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35.
76a0ac10d32bbf30d8b40409a37564817f1fbb58
Motor
0
3
396
367
2024-07-08T01:18:10Z
Eric Lengyel
1
/* Norm */
wikitext
text/x-wiki
[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]]
A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ .
To satisfy the [[geometric constraint]], the components of $$\mathbf Q$$ must satisfy the equation
:$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ .
Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions.
An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]].
== Simple Motors ==
If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line.
In the case of a pure translation, the motor $$\mathbf T$$ is given by
:$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ ,
and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$.
In the case of a pure rotation, the motor $$\mathbf R$$ is given by
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$.
== Motors Built from Geometry ==
Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table.
{| class="wikitable"
! Motor|| Description
|-
| style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$.
$$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
$$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}
=\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\
+\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\
+\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\
+\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$.
$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$.
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
|}
== Norm ==
The [[bulk norm]] of a motor $$\mathbf Q$$ is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode["segoe ui symbol"]{x2218}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ .
The [[geometric norm]] of a motor $$\mathbf Q$$ is thus
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$.
== Exponential Form ==
A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ .
This expands to
:$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ ,
and replacing the [[line]] $$\boldsymbol l$$ with its components gives us
:$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ .
A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ .
The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation.
== Logarithm ==
Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations
:$$Q_{mw} = -d\sin\phi$$
:$$Q_{vw} = \cos\phi$$ .
Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then,
:$$d = -\dfrac{Q_{mw}}{s}$$
:$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ .
If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required.
The components of $$\boldsymbol l$$ are then given by
:$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$
:$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ .
In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$.
== Square Root ==
The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case.
Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ ,
where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ .
Applying several more trigonometric identities, we now observe
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ .
The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ ,
which means that
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ .
The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields
:$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ .
The square root of a general motor $$\mathbf Q$$ is thus given by
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ .
If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ .
== Factorization ==
Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating
:$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ .
The motor $$\mathbf T$$ is then given by
:$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ .
The original motor $$\mathbf Q$$ can now be expressed as
:$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ ,
where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors.
== Conversion from Motor to Matrix ==
Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices
:$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Motor ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant +1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$
:$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$
:$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$
:$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$
:$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$
:$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$
:$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$
:$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$
:$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$
If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate
:$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ ,
where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by
$$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$
$$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$
$$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$
$$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ .
== Motor Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table, where $$\mathbf v = (Q_{vx}, Q_{vy}, Q_{vz})$$ and $$\mathbf m = (Q_{mx}, Q_{my}, Q_{mz})$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$
$$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a - Q_{mw}p_w\mathbf v)$$
$$p'_w = p_w$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$
$$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$
$$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$
$$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(Q_{mw}\mathbf a + Q_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$
$$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz} + Q_{mw}\mathbf g_{xyz}) \cdot \mathbf v - Q_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$
|}
== In the Book ==
* General motion operators (motors) are discussed in Section 3.6.
== See Also ==
* [[Flector]]
* [[Translation]]
* [[Rotation]]
923a79d235cfa456fbd1dc1bd3cd595a757e615e
397
396
2024-07-08T01:19:38Z
Eric Lengyel
1
/* Square Root */
wikitext
text/x-wiki
[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]]
A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ .
To satisfy the [[geometric constraint]], the components of $$\mathbf Q$$ must satisfy the equation
:$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ .
Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions.
An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]].
== Simple Motors ==
If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line.
In the case of a pure translation, the motor $$\mathbf T$$ is given by
:$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ ,
and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$.
In the case of a pure rotation, the motor $$\mathbf R$$ is given by
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$.
== Motors Built from Geometry ==
Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table.
{| class="wikitable"
! Motor|| Description
|-
| style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$.
$$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
$$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}
=\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\
+\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\
+\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\
+\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$
| style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$.
$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$.
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
|}
== Norm ==
The [[bulk norm]] of a motor $$\mathbf Q$$ is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode["segoe ui symbol"]{x2218}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ .
The [[geometric norm]] of a motor $$\mathbf Q$$ is thus
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$.
== Exponential Form ==
A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as
:$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ .
This expands to
:$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ ,
and replacing the [[line]] $$\boldsymbol l$$ with its components gives us
:$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ .
A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as
:$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ .
The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation.
== Logarithm ==
Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations
:$$Q_{mw} = -d\sin\phi$$
:$$Q_{vw} = \cos\phi$$ .
Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then,
:$$d = -\dfrac{Q_{mw}}{s}$$
:$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ .
If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required.
The components of $$\boldsymbol l$$ are then given by
:$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$
:$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ .
In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$.
== Square Root ==
The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case.
Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ ,
where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as
:$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode["segoe ui symbol"]{x25CB} = 2\cos(\phi/2)$$ .
Applying several more trigonometric identities, we now observe
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode["segoe ui symbol"]{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ .
The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that
:$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode["segoe ui symbol"]{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ ,
which means that
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ .
The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields
:$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ .
The square root of a general motor $$\mathbf Q$$ is thus given by
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ .
If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to
:$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode["segoe ui symbol"]{x25CB}}$$ .
== Factorization ==
Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating
:$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ .
The motor $$\mathbf T$$ is then given by
:$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ .
The original motor $$\mathbf Q$$ can now be expressed as
:$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ ,
where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors.
== Conversion from Motor to Matrix ==
Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices
:$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Motor ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant +1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$
:$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$
:$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$
:$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$
:$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$
:$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$
:$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$
:$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$
:$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$
If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate
:$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ ,
where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by
$$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$
$$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$
$$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$
$$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ .
== Motor Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table, where $$\mathbf v = (Q_{vx}, Q_{vy}, Q_{vz})$$ and $$\mathbf m = (Q_{mx}, Q_{my}, Q_{mz})$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$
$$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a - Q_{mw}p_w\mathbf v)$$
$$p'_w = p_w$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$
$$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$
$$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$
$$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(Q_{mw}\mathbf a + Q_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$
$$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz} + Q_{mw}\mathbf g_{xyz}) \cdot \mathbf v - Q_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$
|}
== In the Book ==
* General motion operators (motors) are discussed in Section 3.6.
== See Also ==
* [[Flector]]
* [[Translation]]
* [[Rotation]]
8076c281b3c1bd9bb781c3284748eed48e0d6b8f
Flector
0
44
398
368
2024-07-08T01:20:42Z
Eric Lengyel
1
/* Norm */
wikitext
text/x-wiki
[[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]]
A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotoreflections. The name flector is a portmanteau of ''reflection operator''. Flectors cannot perform proper isometries that do not include [[reflections]]; those are instead performed by operators called [[motors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form
:$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ ,
which is the sum of a [[point]] $$\mathbf p$$ and a [[plane]] $$\mathbf g$$. To satisfy the [[geometric constraint]], the components of $$\mathbf F$$ must satisfy the equation
:$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ ,
and this means that the [[point]] $$\mathbf p$$ must lie in the [[plane]] $$\mathbf g$$.
An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all [[motors]] in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing [[inversion]] through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$.
== Norm ==
The [[bulk norm]] of a flector $$\mathbf F$$ is given by
:$$\left\Vert\mathbf F\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{\mathbf F \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ ,
and its [[weight norm]] is given by
:$$\left\Vert\mathbf F\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\mathbf F \mathbin{\unicode["segoe ui symbol"]{x2218}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ .
The [[geometric norm]] of a flector $$\mathbf F$$ is thus
:$$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ ,
and this is equal to half the distance that the origin is moved by the operator.
A flector is [[unitized]] when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$.
== Trigonometric Form ==
A general flector $$\mathbf F$$ can be expressed in terms of a [[unitized]] [[point]] $$\mathbf p$$ and a [[unitized]] [[plane]] $$\mathbf g$$ as
:$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ .
This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane.
== Factorization ==
Any [[unitized]] flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple [[motor]] $$\mathbf Q$$ and a [[plane]] by calculating
:$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ ,
where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by
:$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ ,
which is always unitized. The original flector $$\mathbf F$$ can now be expressed as
:$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ .
== Conversion from Flector to Matrix ==
Given a specific [[Unitization | unitized]] flector $$\mathbf G$$, define the matrices
:$$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$
and
:$$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Flector ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant −1 having the form
:$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
:$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$
:$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$
:$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$
:$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$
And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:
:$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$
:$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$
:$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$
:$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$
:$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$
:$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$
If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate
:$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ ,
where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by
$$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$
$$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$
$$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$
$$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ .
== Flector Transformations ==
[[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] flector $$\mathbf F$$ as shown in the following table, where $$\mathbf p = (F_{px}, F_{py}, F_{pz})$$ and $$\mathbf g = (F_{gx}, F_{gy}, F_{gz})$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf q_{xyz} - q_w\mathbf p$$
$$\mathbf q'_{xyz} = \mathbf q_{xyz} + 2(F_{pw}\mathbf a + \mathbf g \times \mathbf a + F_{gw}q_w\mathbf g)$$
$$q'_w = -q_w$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\mathbf k =\, &k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} \\ +\, &k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf k_{\mathbf v}$$
$$\mathbf b = \mathbf g \times \mathbf k_{\mathbf m}$$
$$\mathbf c = \mathbf p \times \mathbf k_{\mathbf v}$$
$$\mathbf k'_{\mathbf v} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf k_{\mathbf v}$$
$$\mathbf k'_{\mathbf m} = 2[F_{gw}\mathbf a + F_{pw}(\mathbf c - \mathbf b) + \mathbf g \times (\mathbf c - \mathbf b) + \mathbf p \times \mathbf a] - \mathbf k_{\mathbf m}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf h_{xyz}$$
$$\mathbf h'_{xyz} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf h_{xyz}$$
$$h'_w = h_w + 2[(\mathbf h_{xyz} \times \mathbf p - F_{gw}\mathbf h_{xyz}) \cdot \mathbf g + F_{pw}(\mathbf p \cdot \mathbf h_{xyz})]$$
|}
== In the Book ==
* General reflection operators (flectors) are discussed in Section 3.7.
== See Also ==
* [[Motor]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
87905216d9be4d98b374ebac477556a46a0f2554
Duals
0
164
399
388
2024-07-08T01:21:28Z
Eric Lengyel
1
wikitext
text/x-wiki
Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''.
== Dual ==
The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode["segoe ui symbol"]{x25CF}}$$ .
The bulk dual satisfies the following identity based on the [[geometric product]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ .
== Antidual ==
The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode["segoe ui symbol"]{x25CB}}$$ .
The weight dual satisfies the following identity based on the [[geometric antiproduct]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ .
== Duals of Basis Elements ==
The following table lists the bulk and weight duals for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Duals.svg|720px]]
== Duals of Geometries ==
The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table.
{| class="wikitable"
! Type !! Bulk Dual !! Weight Dual
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$
|}
== In the Book ==
* Duals are introduced in Section 2.12.
== See Also ==
* [[Complements]]
* [[Bulk and weight]]
f8decebd4157572d16fe9110513cb3a70c34d36c
432
399
2024-12-22T08:49:34Z
Eric Lengyel
1
wikitext
text/x-wiki
Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''.
== Dual ==
The (right) ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ ,
where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode["segoe ui symbol"]{x25CF}}$$ .
The bulk dual satisfies the following identity based on the [[geometric product]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ .
The right bulk dual produces results equivalent to the Hodge star operator and thus satisfies the identity
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b){\large\unicode{x1D7D9}}$$.
== Antidual ==
The (right) ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ ,
where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode["segoe ui symbol"]{x25CB}}$$ .
The weight dual satisfies the following identity based on the [[geometric antiproduct]]:
:$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ .
== Duals of Basis Elements ==
The following table lists the bulk and weight duals for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. In addition to the right duals, there are also left bulk and weight duals denoted by $$\mathbf u_\unicode["segoe ui symbol"]{x2605}$$ and $$\mathbf u_\unicode["segoe ui symbol"]{x2606}$$ for which the right complement operation is replaced by the left complement operation.
[[Image:Duals.svg|720px]]
Taking either dual twice causes the sign to change according to the formula
:$$\mathbf u^{\unicode["segoe ui symbol"]{x2605}\unicode["segoe ui symbol"]{x2605}} = \mathbf u^{\unicode["segoe ui symbol"]{x2606}\unicode["segoe ui symbol"]{x2606}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\det(\mathfrak g)\mathbf u$$ .
Since the determinant of the [[metric]] $$\mathfrak g$$ is zero in the projective algebra $$\mathcal G_{3,0,1}$$, applying either dual twice always produces zero here.
== Duals of Geometries ==
The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table.
{| class="wikitable"
! Type !! Bulk Dual !! Weight Dual
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$
| style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$
| style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$
|}
== In the Book ==
* Duals are introduced in Section 2.12.
== See Also ==
* [[Complements]]
* [[Bulk and weight]]
e2fcb5d2ee8a1563988bb7d0293f7f97b6c23aa9
Geometric norm
0
38
400
360
2024-07-08T01:24:58Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm.
For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator.
== Bulk Norm ==
The ''bulk norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf u$$ with itself:
:$$\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf u}$$ .
An element that has a bulk norm of '''1''' is said to be ''bulk normalized''.
The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode["segoe ui symbol"]{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode["segoe ui symbol"]{x25CF} = |g_w|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$
|}
== Weight Norm ==
The ''weight norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf u$$ with itself:
:$$\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf u}$$ .
(Note that the square root in this case is taken with respect to the geometric antiproduct.)
An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''.
The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Weight Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode["segoe ui symbol"]{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode["segoe ui symbol"]{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode["segoe ui symbol"]{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode["segoe ui symbol"]{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode["segoe ui symbol"]{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$
|}
== Geometric Norm ==
The bulk norm and weight norm are summed to construct the ''geometric norm'' given by
:$$\left\Vert\mathbf u\right\Vert = \left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CF} + \left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf u} + \sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf u}$$ .
This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because
:$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ .
Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf u$$ is given by
:$$\widehat{\left\Vert\mathbf u\right\Vert} = \dfrac{\left\Vert\mathbf u\right\Vert}{\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB}} = \dfrac{\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CF}}{\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf u}}{\sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf u}} + {\large\unicode{x1D7D9}}$$ .
The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$.
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$.
Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$.
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$.
Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
== In the Book ==
* The geometric norm is discussed in Section 2.10.
== See Also ==
* [[Geometric constraint]]
c5c286f05544be73d3bd72f407caf4bca07293df
Geometric constraint
0
40
401
361
2024-07-08T01:25:30Z
Eric Lengyel
1
wikitext
text/x-wiki
An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric constraint'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is,
:$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf u$$
and
:$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf u$$ .
The set of all elements satisfying the geometric constraint is closed under both the [[geometric product]] and [[geometric antiproduct]].
The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ due to the geometric constraint. Points and planes do not have any requirements—they have no constraints.
{| class="wikitable"
! Type !! Definition !! Requirement
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$xy = 0$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | —
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$
|}
== In the Book ==
* The geometric constraint is discussed in Section 3.4.3.
== See Also ==
* [[Geometric norm]]
4737551b5ae142560b7f66c9e10a6db77f650776
Unitization
0
39
402
362
2024-07-08T01:25:57Z
Eric Lengyel
1
wikitext
text/x-wiki
''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''.
An element $$\mathbf u$$ is unitized by calculating
:$$\mathbf{\hat u} = \dfrac{\mathbf u}{\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB}} = \dfrac{\mathbf u}{\sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf u}}$$ .
In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one.
The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$.
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$p_w^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
| style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$
|-
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
| style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$
| style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$
|}
== In the Book ==
* Unitization is discussed in Section 2.10.2.
== See Also ==
* [[Geometric norm]]
a5a6ccfc3f688c68896f1e54b422089b8d6d8d9b
Dot products
0
67
403
348
2024-07-08T01:27:26Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''dot product'' is the inner product in geometric algebra. The dot product and its antiproduct are important for the calculation of angles and [[Geometric norm | norms]].
== Dot Product ==
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as
:$$\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ ,
where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]], and we are using ordinary matrix multiplication.
The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade.
== Antidot Product ==
The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as
:$$\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ ,
where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]].
The antidot product can also be derived from the dot product using the De Morgan relationship
:$$\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode["segoe ui symbol"]{x2022}} \underline{\mathbf b}}$$ .
== Table ==
The following table shows the dot product and antidot product of each basis element $$\mathbf u$$ in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ with itself. All other dot products and antidot products are zero.
[[Image:Dots.svg|720px]]
== In the Book ==
* The dot product and antidot product are introduced in Section 2.9.
== See Also ==
* [[Geometric products]]
* [[Wedge products]]
984e7846add9f08d1e3eaeebebdf90ac2c5ae9ae
Interior products
0
70
404
351
2024-07-08T01:29:33Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object.
== Contractions ==
The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The contractions have the effect of subtracting grades so that
:$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b$$
and
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b) \vee \mathbf 1$$ .
The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$.
[[Image:Constractions.svg|720px]]
== Expansions ==
The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The expansions have the effect of subtracting antigrades so that
:$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .
In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b$$
and
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ .
The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$.
[[Image:Expansions.svg|720px]]
== In the Book ==
* Interior products, contractions, and expansions are discussed in Section 2.13.
== See Also ==
* [[Projections]]
b8f7f0f8840fb5165e3edc707fc8adf4c2f6b0a4
422
404
2024-08-22T01:14:49Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object.
== Contractions ==
The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The contractions have the effect of subtracting grades so that
:$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b$$
and
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b) \vee \mathbf 1$$ .
The bulk contraction satisfies the identity
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \langle\mathbf{\tilde b} \mathbin{\unicode{x27D1}} \mathbf a\rangle_{\operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)}$$
The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$.
[[Image:Constractions.svg|720px]]
== Expansions ==
The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The expansions have the effect of subtracting antigrades so that
:$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .
In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b$$
and
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ .
The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$.
[[Image:Expansions.svg|720px]]
== In the Book ==
* Interior products, contractions, and expansions are discussed in Section 2.13.
== See Also ==
* [[Projections]]
a854978c0d3f3bb7078e246903a4c213b365a201
423
422
2024-08-22T01:22:14Z
Eric Lengyel
1
wikitext
text/x-wiki
The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object.
== Contractions ==
The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The contractions have the effect of subtracting grades so that
:$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b$$
and
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b) \vee \mathbf 1$$ .
The bulk contraction satisfies the identity
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \langle\mathbf{\tilde b} \mathbin{\unicode{x27D1}} \mathbf a\rangle_{\operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)}$$ .
The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$.
[[Image:Constractions.svg|720px]]
== Expansions ==
The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The expansions have the effect of subtracting antigrades so that
:$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{ag}(\mathbf b)$$ .
In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b$$
and
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ .
The weight expansion satisfies the identity
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \langle\smash{\mathbf{\underset{\Large\unicode{x7E}}{b}}} \mathbin{\unicode{x27C7}} \mathbf a\rangle_{n - [\operatorname{ag}(\mathbf a) - \operatorname{ag}(\mathbf b)]}$$ .
The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$.
[[Image:Expansions.svg|720px]]
== In the Book ==
* Interior products, contractions, and expansions are discussed in Section 2.13.
== See Also ==
* [[Projections]]
be64e7059f1fb8caf64d23a39242f0d2f8dbd587
424
423
2024-08-22T03:13:29Z
Eric Lengyel
1
/* Expansions */
wikitext
text/x-wiki
The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object.
== Contractions ==
The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The contractions have the effect of subtracting grades so that
:$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ .
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b$$
and
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b) \vee \mathbf 1$$ .
The bulk contraction satisfies the identity
:$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \langle\mathbf{\tilde b} \mathbin{\unicode{x27D1}} \mathbf a\rangle_{\operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)}$$ .
The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$.
[[Image:Constractions.svg|720px]]
== Expansions ==
The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ .
The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as
:$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ .
The expansions have the effect of subtracting antigrades so that
:$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{ag}(\mathbf b)$$ .
In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b$$
and
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ .
The weight expansion satisfies the identity
:$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \langle\!\langle\smash{\mathbf{\underset{\Large\unicode{x7E}}{b}}} \mathbin{\unicode{x27C7}} \mathbf a\rangle\!\rangle_{\operatorname{ag}(\mathbf a) - \operatorname{ag}(\mathbf b)}$$ .
The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$.
[[Image:Expansions.svg|720px]]
== In the Book ==
* Interior products, contractions, and expansions are discussed in Section 2.13.
== See Also ==
* [[Projections]]
0215a2dd4309c480158445dc0df64bb13c3edbf7
Euclidean distance
0
49
405
371
2024-07-08T01:30:31Z
Eric Lengyel
1
wikitext
text/x-wiki
The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by
:$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode["segoe ui symbol"]{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode["segoe ui symbol"]{x25CB}$$.
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ sum to $$n$$, the dimension of the algebra, a signed distance can be obtained by using the formula
:$$d(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode["segoe ui symbol"]{x25CB}$$.
The following table lists formulas for distances between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
{| class="wikitable"
! Distance Formula !! Illustration
|-
| style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$
$$d(\mathbf p, \mathbf q) = \left\Vert \mathbf q_{xyz}p_w - \mathbf p_{xyz}q_w\right\Vert \mathbf 1 + |p_wq_w| {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$.
$$d(\mathbf p, \boldsymbol l) = \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf p_{xyz} + p_w \boldsymbol l_{\mathbf m}\right\Vert \mathbf 1 + \left\Vert p_w \boldsymbol l_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$.
$$d(\mathbf p, \mathbf g) = (\mathbf p \cdot \mathbf g)\mathbf 1 + \left\Vert p_w \mathbf g_{xyz} \right\Vert {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]]
|-
| style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$.
$$d(\boldsymbol l, \mathbf k) = -(\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf m} + \boldsymbol l_{\mathbf m} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf k_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$
| style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]]
|}
== In the Book ==
* Euclidean distances are discussed in Section 2.11.
== See Also ==
* [[Euclidean angle]]
* [[Geometric norm]]
* [[Magnitude]]
* [[Attitude]]
f89573bc2c6af4202c676be65ac67476677beb3e
Euclidean angle
0
176
406
376
2024-07-08T01:31:19Z
Eric Lengyel
1
wikitext
text/x-wiki
The cosine of the Euclidean angle $$\cos \phi(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by
:$$\cos \phi(\mathbf a, \mathbf b) = \left\Vert \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}\right\Vert_\unicode["segoe ui symbol"]{x25CF} + \left\Vert\mathbf a \right\Vert_\unicode["segoe ui symbol"]{x25CB}\left\Vert\mathbf b \right\Vert_\unicode["segoe ui symbol"]{x25CB}$$.
In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are equal, a signed angle can be obtained by using the formula
:$$\cos \phi(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} + \left\Vert\mathbf a \right\Vert_\unicode["segoe ui symbol"]{x25CB}\left\Vert\mathbf b \right\Vert_\unicode["segoe ui symbol"]{x25CB}$$.
The following table lists formulas for angles between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
The [[lines]] and [[planes]] appearing in the distance formulas are defined as follows:
:$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
:$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
{| class="wikitable"
! Angle Formula !! Illustration
|-
| style="padding: 12px;" | Cosine of angle $$\phi$$ between planes $$\mathbf g$$ and $$\mathbf h$$.
$$\cos \phi(\mathbf g, \mathbf h) = (\mathbf g_{xyz} \cdot \mathbf h_{xyz}) \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode["segoe ui symbol"]{x25CB}\left\Vert\mathbf h \right\Vert_\unicode["segoe ui symbol"]{x25CB}$$
| style="padding: 12px; text-align: center;" | [[Image:angle_plane_plane.svg|200px]]
|-
| style="padding: 12px;" | Cosine of angle $$\phi$$ between plane $$\mathbf g$$ and line $$\boldsymbol l$$.
$$\cos \phi(\mathbf g, \boldsymbol l) = \left\Vert \mathbf g_{xyz} \times \boldsymbol l_{\mathbf v}\right\Vert \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode["segoe ui symbol"]{x25CB}\left\Vert\boldsymbol l \right\Vert_\unicode["segoe ui symbol"]{x25CB}$$
| style="padding: 12px; text-align: center;" | [[Image:angle_plane_line.svg|200px]]
|-
| style="padding: 12px;" | Cosine of angle $$\phi$$ between lines $$\boldsymbol l$$ and line $$\mathbf k$$.
$$\cos \phi(\boldsymbol l, \mathbf k) = (\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert\boldsymbol l \right\Vert_\unicode["segoe ui symbol"]{x25CB}\left\Vert\mathbf k \right\Vert_\unicode["segoe ui symbol"]{x25CB}$$
| style="padding: 12px; text-align: center;" | [[Image:angle_line_line.svg|200px]]
|}
== In the Book ==
* Euclidean angles are discussed in Section 2.13.3.
== See Also ==
* [[Euclidean distance]]
* [[Geometric norm]]
* [[Magnitude]]
* [[Interior products]]
47fddbea6d3b77eb86e9c1ddfdff13be13278b5e
Translation
0
31
408
288
2024-07-14T02:26:20Z
Eric Lengyel
1
/* Exponential Form */
wikitext
text/x-wiki
__NOTOC__
A ''translation'' is a proper isometry of Euclidean space.
The specific kind of [[motor]]
:$$\mathbf T = {\tau_x \mathbf e_{23} + \tau_y \mathbf e_{31} + \tau_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$
performs a translation by twice the displacement vector $$\boldsymbol \tau = (\tau_x, \tau_y, \tau_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\boldsymbol \tau$$.
== Exponential Form ==
A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as
:$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{\delta}{2} \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$
== Matrix Form ==
When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix
:$$\begin{bmatrix}
1 & 0 & 0 & \tau_x \\
0 & 1 & 0 & \tau_y \\
0 & 0 & 1 & \tau_z \\
0 & 0 & 0 & 1 \\
\end{bmatrix}$$ .
== Translation to Origin ==
A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator
:$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ .
== Calculation ==
The exact translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2\tau_xp_w)\mathbf e_1 + (p_y + 2\tau_yp_w)\mathbf e_2 + (p_z + 2\tau_zp_w)\mathbf e_3 + p_w\mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2\tau_y l_{vz} - 2\tau_z l_{vy})\mathbf e_{23} + (l_{my} + 2\tau_z l_{vx} - 2\tau_x l_{vz})\mathbf e_{31} + (l_{mz} + 2\tau_x l_{vy} - 2\tau_y l_{vx})\mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2\tau_xg_x - 2\tau_yg_y - 2\tau_zg_z) \mathbf e_{321}$$
|}
== See Also ==
* [[Reciprocal translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
beebdf83871998b01092c846fbfa4fab9a7a2684
416
408
2024-08-08T07:11:29Z
Eric Lengyel
1
/* See Also */
wikitext
text/x-wiki
__NOTOC__
A ''translation'' is a proper isometry of Euclidean space.
The specific kind of [[motor]]
:$$\mathbf T = {\tau_x \mathbf e_{23} + \tau_y \mathbf e_{31} + \tau_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$
performs a translation by twice the displacement vector $$\boldsymbol \tau = (\tau_x, \tau_y, \tau_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\boldsymbol \tau$$.
== Exponential Form ==
A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as
:$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{\delta}{2} \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$
== Matrix Form ==
When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix
:$$\begin{bmatrix}
1 & 0 & 0 & \tau_x \\
0 & 1 & 0 & \tau_y \\
0 & 0 & 1 & \tau_z \\
0 & 0 & 0 & 1 \\
\end{bmatrix}$$ .
== Translation to Origin ==
A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator
:$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ .
== Calculation ==
The exact translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2\tau_xp_w)\mathbf e_1 + (p_y + 2\tau_yp_w)\mathbf e_2 + (p_z + 2\tau_zp_w)\mathbf e_3 + p_w\mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2\tau_y l_{vz} - 2\tau_z l_{vy})\mathbf e_{23} + (l_{my} + 2\tau_z l_{vx} - 2\tau_x l_{vz})\mathbf e_{31} + (l_{mz} + 2\tau_x l_{vy} - 2\tau_y l_{vx})\mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2\tau_xg_x - 2\tau_yg_y - 2\tau_zg_z) \mathbf e_{321}$$
|}
== See Also ==
* [[Complement translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
09dea65f7faf75f4462b6ed8e57934d29676a541
428
416
2024-10-12T23:27:53Z
Eric Lengyel
1
/* Matrix Form */
wikitext
text/x-wiki
__NOTOC__
A ''translation'' is a proper isometry of Euclidean space.
The specific kind of [[motor]]
:$$\mathbf T = {\tau_x \mathbf e_{23} + \tau_y \mathbf e_{31} + \tau_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$
performs a translation by twice the displacement vector $$\boldsymbol \tau = (\tau_x, \tau_y, \tau_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\boldsymbol \tau$$.
== Exponential Form ==
A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as
:$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{\delta}{2} \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$
== Matrix Form ==
When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix
:$$\begin{bmatrix}
1 & 0 & 0 & 2\tau_x \\
0 & 1 & 0 & 2\tau_y \\
0 & 0 & 1 & 2\tau_z \\
0 & 0 & 0 & 1 \\
\end{bmatrix}$$ .
== Translation to Origin ==
A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator
:$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ .
== Calculation ==
The exact translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2\tau_xp_w)\mathbf e_1 + (p_y + 2\tau_yp_w)\mathbf e_2 + (p_z + 2\tau_zp_w)\mathbf e_3 + p_w\mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2\tau_y l_{vz} - 2\tau_z l_{vy})\mathbf e_{23} + (l_{my} + 2\tau_z l_{vx} - 2\tau_x l_{vz})\mathbf e_{31} + (l_{mz} + 2\tau_x l_{vy} - 2\tau_y l_{vx})\mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2\tau_xg_x - 2\tau_yg_y - 2\tau_zg_z) \mathbf e_{321}$$
|}
== See Also ==
* [[Complement translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
32f9a8d567860ab5ef97f1018c1b29ad9424c47c
Transformation groups
0
25
409
369
2024-08-08T07:06:28Z
Eric Lengyel
1
wikitext
text/x-wiki
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form
:$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$
or by a [[flector]] $$\mathbf F$$ of the form
:$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ .
Under the [[geometric antiproduct]] $$\unicode{x27C7}$$, arbitrary products of these operators form the Euclidean group $$\mathrm E(3)$$ with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$.
Symmetrically, every complement Euclidean isometry of 3D space can be represented by a [[complement motor]] $$\mathbf Q$$ of the form
:$$\mathbf Q = Q_{vx} \mathbf e_{23} + Q_{vy} \mathbf e_{31} + Q_{vz} \mathbf e_{12} - Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{41} + Q_{my} \mathbf e_{42} + Q_{mz} \mathbf e_{43} - Q_{mw} \mathbf 1$$
or by a [[complement flector]] $$\mathbf F$$ of the form
:$$\mathbf F = F_{px} \mathbf e_{423} + F_{py} \mathbf e_{431} + F_{pz} \mathbf e_{412} + F_{pw} \mathbf e_{321} - F_{gx} \mathbf e_1 - F_{gy} \mathbf e_2 - F_{gz} \mathbf e_3 - F_{gw} \mathbf e_4$$ .
Under the [[geometric product]] $$\unicode{x27D1}$$, arbitrary products of these operators form the complement Euclidean group $$\overline{\mathrm E}(3)$$ with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde F}$$.
The [[geometric product]] corresponds to transform composition in the group $$\overline{\mathrm E}(3)$$, and the [[geometric antiproduct]] corresponds to transform composition in the group $$\mathrm E(3)$$. [[Reflections]] across planes are represented by [[antivectors]] (having [[antigrade]] one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, [[complement reflections]] across points are represented by [[vectors]] (having [[grade]] one), and they join at higher-dimensional invariants under the geometric product. A sandwich product $$\mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ transforms the space of $$\mathbf x$$ with an element of $$\overline{\mathrm E}(3)$$, and it transforms the antispace of $$\mathbf x$$ with the complementary element of $$\mathrm E(3)$$. Symmetrically, a sandwich product $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ transforms the space of $$\mathbf x$$ with an element of $$\mathrm E(3)$$, and it transforms the antispace of $$\mathbf x$$ with the complementary element of $$\overline{\mathrm E}(3)$$.
The groups $$\mathrm E(n)$$ and $$\overline{\mathrm E}(n)$$ are isomorphic, and they each contain the orthogonal group $$\mathrm O(n)$$ as a common subgroup. The [[complement]] operation provides a two-way mapping between transforms associated with members of $$\mathrm E(n)$$ and $$\overline{\mathrm E}(n)$$. The groups $$\mathrm E(n)$$ and $$\overline{\mathrm E}(n)$$ have a number of subgroups, and the hierarchical relationships among them are shown in the figure below. In particular, the Euclidean group $$\mathrm E(n)$$ contains the special Euclidean subgroup $$\mathrm{SE}(n)$$ consisting of all combinations of ordinary [[rotations]] and [[translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even antigrade. Correspondingly, the complement Euclidean group $$\overline{\mathrm E}(n)$$ contains the complement special Euclidean subgroup $$\mathrm S\overline{\mathrm E}(n)$$ consisting of all combinations of [[complement rotations]] and [[complement translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even grade. The subgroups $$\mathrm{SE}(n)$$ and $$\mathrm S\overline{\mathrm E}(n)$$ further contain translation subgroups $$\mathrm T(n)$$ and $$\overline{\mathrm T}(n)$$, respectively.
[[Image:Groups.svg|800px]]
Transforms about invariants containing the origin are the same in both $$\mathrm E(n)$$ and $$\overline{\mathrm E}(n)$$, and they constitute the common subgroup $$\mathrm O(n)$$. Every member of $$\mathrm O(n)$$ has a representation that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, conventional [[quaternions]] $$\mathbf q$$ have two representations, one that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ and another that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$.
In terms of matrix multiplication, a general element of the group $$\mathrm E(n)$$ transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form
:$$\begin{bmatrix} \mathbf M_{n \times n} & \boldsymbol \tau_{n \times 1} \\ \mathbf 0_{1 \times n} & 1 \end{bmatrix}$$ ,
where the $$n \times n$$ submatrix $$\mathbf M$$ is orthogonal. A general element of the corresponding group $$\overline{\mathrm E}(n)$$ transforms points with matrices of the form
:$$\begin{bmatrix} \mathbf M_{n \times n} & \mathbf 0_{n \times 1} \\ \boldsymbol \tau_{1 \times n} & 1 \end{bmatrix}$$ .
In the special subgroups $$\mathrm{SE}(n)$$ and $$\mathrm S\overline{\mathrm E}(n)$$, the submatrix $$\mathbf M$$ has a determinant of +1. In the translation subgroups $$\mathrm T(n)$$ and $$\overline{\mathrm T}(n)$$, $$\mathbf M$$ is the identity matrix. Finally, when $$\boldsymbol \tau = \mathbf 0$$, the two matrices above have the same form and belong to $$\mathrm O(n)$$.
The isomorphic mapping between $$\mathrm E(n)$$ and $$\overline{\mathrm E}(n)$$ is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of $$\mathrm E(n)$$, then the corresponding element of $$\overline{\mathrm E}(n)$$ is given by $$(\mathbf M^{-1})^{\text T}$$. Of course, this operation is an involution, and the mapping works both ways.
== In the Book ==
* Transformation groups are discussed in Section 3.9.2.
== See Also ==
* [[Motor]]
* [[Flector]]
2797cf78de2e2b81e642504107f4b9ec8f002c82
Complement rotation
0
37
410
190
2024-08-08T07:07:14Z
Eric Lengyel
1
Eric Lengyel moved page [[Reciprocal rotation]] to [[Complement rotation]] without leaving a redirect
wikitext
text/x-wiki
A ''reciprocal rotation'' is a proper isometry of reciprocal Euclidean space.
For a [[bulk normalized]] [[line]] $$\boldsymbol l$$, the specific kind of [[reciprocal motor]]
:$$\mathbf R = \boldsymbol l\sin\phi + \mathbf 1\cos\phi$$ ,
performs a reciprocal rotation of an object $$\mathbf x$$ by twice the angle $$\phi$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde R}$$. The line $$\boldsymbol l$$ and its bulk [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ passes through the origin and runs perpendicular to the line's moment bivector.
Under a reciprocal rotation, a point $$\mathbf p$$ follows an orbit of constant eccentricity as the angle $$\phi$$ ranges from 0 to $$\pi$$. The line $$\boldsymbol l$$ is the directrix for the orbit, and the intersection of $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ with the plane $$\boldsymbol l \wedge \mathbf p$$ is the focus. The eccentricity is given by the distance from $$\mathbf p$$ to the focus divided by the distance from $$\mathbf p$$ to the directrix.
== Example ==
The left image below shows the flow field in the ''x''-''y'' plane for the rotation $$\mathbf R = (\mathbf e_{43} - \frac{1}{2} \mathbf e_{31})\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$. The axis of rotation runs along the ''z'' direction through the yellow point. The right image shows the flow field in the ''x''-''y'' plane for the reciprocal rotation $$\mathbf R = (\frac{1}{2} \mathbf e_{42} - \mathbf e_{12})\sin\phi + \mathbf 1\cos\phi$$. Points follow orbits of constant eccentricity with respect to a focus at the origin and a directrix given by the yellow line.
[[Image:Rotation.svg|480px]]
[[Image:DualRotation.svg|480px]]
== Calculation ==
The exact reciprocal rotation calculations for points, lines, and planes transformed by the operator $$\mathbf R = R_{vx}\mathbf e_{41} + R_{vy}\mathbf e_{42} + R_{vz}\mathbf e_{43} + R_{mx}\mathbf e_{23} + R_{my}\mathbf e_{31} + R_{mz}\mathbf e_{12} + R_{mw}\mathbf 1$$ are shown in the following table. Here, it is assumed that $$\mathbf R$$ is [[bulk normalized]] so that $$R_{mx}^2 + R_{my}^2 + R_{mz}^2 + R_{mw}^2 = 1$$ and that $$\mathbf R$$ properly satisfies the [[geometric property]] so that $$R_{vx}R_{mx} + R_{vy}R_{my} + R_{vz}R_{mz} = 0$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)p_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})p_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})p_z\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)p_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})p_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})p_x\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)p_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})p_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})p_y\right]\mathbf e_3 \\ +\, &\left[2(R_{my}R_{vz} - R_{mz}R_{vy} + R_{mw}R_{vx})p_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} + R_{mw}R_{vy})p_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} + R_{mw}R_{vz})p_z + p_w\right]\mathbf e_4\end{split}$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[-4(R_{my}R_{vy} + R_{mz}R_{vz})l_{mx} + 2(R_{my}R_{vx} + R_{mx}R_{vy} + R_{mw}R_{vz})l_{my} + 2(R_{mz}R_{vx} + R_{mx}R_{vz} - R_{mw}R_{vy})l_{mz} + (1 - 2R_{my}^2 - 2R_{mz}^2)l_{vx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{vy} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[-4(R_{mz}R_{vz} + R_{mx}R_{vx})l_{my} + 2(R_{mz}R_{vy} + R_{my}R_{vz} + R_{mw}R_{vx})l_{mz} + 2(R_{mx}R_{vy} + R_{my}R_{vx} - R_{mw}R_{vz})l_{mx} + (1 - 2R_{mz}^2 - 2R_{mx}^2)l_{vy} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{vz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[-4(R_{mx}R_{vx} + R_{my}R_{vy})l_{mz} + 2(R_{mx}R_{vz} + R_{mz}R_{vx} + R_{mw}R_{vy})l_{mx} + 2(R_{my}R_{vz} + R_{mz}R_{vy} - R_{mw}R_{vx})l_{my} + (1 - 2R_{mx}^2 - 2R_{my}^2)l_{vz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{vx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)l_{mx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{my} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)l_{my} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{mz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)l_{mz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{mx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{my}\right]\mathbf e_{12}\end{split}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf g \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)g_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})g_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})g_z + 2(R_{my}R_{vz} - R_{mz}R_{vy} - R_{mw}R_{vx})g_w\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)g_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})g_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})g_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} - R_{mw}R_{vy})g_w\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)g_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})g_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})g_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} - R_{mw}R_{vz})g_w\right]\mathbf e_{412} \\ +\, &g_w\mathbf e_{321}\end{split}$$
|}
== See Also ==
* [[Rotation]]
* [[Reciprocal translation]]
* [[Reciprocal reflection]]
6f7d97f24a97dae954cd95a852435cfd2caa22bc
Complement rotations
0
144
411
189
2024-08-08T07:10:07Z
Eric Lengyel
1
Changed redirect target from [[Reciprocal rotation]] to [[Complement rotation]]
wikitext
text/x-wiki
#REDIRECT [[Complement rotation]]
a9110c07aee1527b7a2fb092832b6d572d4a108c
412
411
2024-08-08T07:10:18Z
Eric Lengyel
1
Eric Lengyel moved page [[Reciprocal rotations]] to [[Complement rotations]] without leaving a redirect
wikitext
text/x-wiki
#REDIRECT [[Complement rotation]]
a9110c07aee1527b7a2fb092832b6d572d4a108c
Complement translation
0
34
413
300
2024-08-08T07:10:32Z
Eric Lengyel
1
Eric Lengyel moved page [[Reciprocal translation]] to [[Complement translation]] without leaving a redirect
wikitext
text/x-wiki
__NOTOC__
A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space.
The specific kind of [[reciprocal motor]]
:$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$
performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by
:$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ .
== Example ==
The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative.
[[Image:Translation.svg|480px]]
[[Image:DualTranslation.svg|480px]]
== Calculation ==
The exact reciprocal translation calculations for points, lines, and planes are shown in the following table.
{| class="wikitable"
! Type || Reciprocal Translation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$
|}
== Reciprocal Translation to Horizon ==
A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator
:$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{43} + \mathbf 1$$ .
== See Also ==
* [[Translation]]
* [[Reciprocal rotation]]
* [[Reciprocal reflection]]
84acb84893568b0e2552daae39f7b6271c18ff73
Complement translations
0
143
414
188
2024-08-08T07:10:46Z
Eric Lengyel
1
Changed redirect target from [[Reciprocal translation]] to [[Complement translation]]
wikitext
text/x-wiki
#REDIRECT [[Complement translation]]
59f4a406fb929e752d3fc9912c682b6226855811
415
414
2024-08-08T07:11:04Z
Eric Lengyel
1
Eric Lengyel moved page [[Reciprocal translations]] to [[Complement translations]] without leaving a redirect
wikitext
text/x-wiki
#REDIRECT [[Complement translation]]
59f4a406fb929e752d3fc9912c682b6226855811
Rotation
0
30
417
313
2024-08-08T07:11:37Z
Eric Lengyel
1
/* See Also */
wikitext
text/x-wiki
A ''rotation'' is a proper isometry of Euclidean space.
For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]]
:$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ ,
performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathbf R$$ differs from a general [[motor]] only in that it is always the case that $$R_{mw} = 0$$. The line $$\boldsymbol l$$ and its [[weight dual]] $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ are invariant under this operation. The line $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ lies in the [[horizon]] in directions perpendicular to the direction of $$\boldsymbol l$$.
== Calculation ==
The exact rotation calculations for points, lines, and planes are shown in the following table, where $$\mathbf v = (R_{vx}, R_{vy}, R_{vz})$$ and $$\mathbf m = (R_{mx}, R_{my}, R_{mz})$$.
{| class="wikitable"
! Type || Transformation
|-
| style="padding: 12px;" | [[Point]]
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$
$$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$p'_w = p_w$$
|-
| style="padding: 12px;" | [[Line]]
$$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$
$$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$
$$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$
$$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(R_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$
|-
| style="padding: 12px;" | [[Plane]]
$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$
$$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$
$$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz}) \cdot \mathbf v - R_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$
|}
== See Also ==
* [[Complement rotation]]
* [[Translation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
a120facb8497957cd80923af1e8c64532070f26c
Main Page
0
1
418
377
2024-08-10T03:02:21Z
Eric Lengyel
1
/* Pages */
wikitext
text/x-wiki
__NOTOC__
== Rigid Geometric Algebra ==
This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites:
* [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site]
* [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site]
Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres.
Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki.
'''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.'''
== Introduction ==
[[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]]
In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1.
There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions.
There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form
:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ .
There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$.
There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order.
Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation
:$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ ,
with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not.
As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization.
For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements.
In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that
:$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ ,
where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs.
In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension.
== Pages ==
=== The five main types of rigid geometric objects ===
* [[Point]]
* [[Line]]
* [[Plane]]
* [[Motor]]
* [[Flector]]
=== Various properties and unary operations ===
* [[Grade and antigrade]]
* [[Complements]]
* [[Metrics]]
* [[Bulk and weight]]
* [[Duals]]
* [[Reverses]]
* [[Attitude]]
* [[Geometric norm]]
* [[Geometric constraint]]
* [[Unitization]]
* [[Duality]]
=== Products and other binary operations ===
* [[Exterior products]]
* [[Dot products]]
* [[Interior products]]
* [[Geometric products]]
* [[Join and meet]]
* [[Projections]]
* [[Euclidean distance]]
* [[Euclidean angle]]
=== Isometries of 3D space ===
* [[Transformation groups]]
* [[Translation]]
* [[Rotation]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]
4af5e4a672ae1dd2284c1b1465b4d70f2be5bb0f
Space-Antispace Transform Correspondence in Projective Geometric Algebra
0
180
419
2024-08-11T02:37:18Z
Eric Lengyel
1
Created page with "This content has been moved to the following location. [https://terathon.com/blog/space-antispace-pga.html https://terathon.com/blog/space-antispace-pga.html]"
wikitext
text/x-wiki
This content has been moved to the following location.
[https://terathon.com/blog/space-antispace-pga.html https://terathon.com/blog/space-antispace-pga.html]
358e4d5fcd5ca7f58d49ebdff89b501e24a7d7d9
Symmetries in Projective Geometric Algebra
0
181
420
2024-08-11T02:37:59Z
Eric Lengyel
1
Created page with "This content has been moved to the following location: [https://terathon.com/blog/symmetries-pga.html https://terathon.com/blog/symmetries-pga.html]"
wikitext
text/x-wiki
This content has been moved to the following location:
[https://terathon.com/blog/symmetries-pga.html https://terathon.com/blog/symmetries-pga.html]
2f5f34afa0dc027bece5534f8b0e7b83ef014c7c
Projective Geometric Algebra Done Right
0
182
421
2024-08-11T02:39:10Z
Eric Lengyel
1
Created page with "This content has been moved to the following location: [https://terathon.com/blog/pga-done-right.html https://terathon.com/blog/pga-done-right.html]"
wikitext
text/x-wiki
This content has been moved to the following location:
[https://terathon.com/blog/pga-done-right.html https://terathon.com/blog/pga-done-right.html]
f3efb7718681926dfeb36483ce672f8e2f7203bc
Complements
0
41
425
355
2024-08-25T06:30:10Z
Eric Lengyel
1
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation
:$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation
:$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ .
This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$.
Taking the right or left complement twice causes the sign to change according to the formula
:$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ .
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$
:$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|720px]]
=== Explicit Formula ===
Let $$\mathbf u$$ be a basis element with grade $$k$$. Then $$\mathbf u$$ can be expressed as
:$$\mathbf u = \mathbf e_{a_1} \wedge \mathbf e_{a_2} \cdots \mathbf e_{a_k}$$ ,
where each $$a_i$$ is a unique index satisfying $$1 \le a_i \le n$$. The right complement of $$\mathbf u$$ is given by
:$$\overline{\mathbf u} = \operatorname{sgn}(a_1, a_2, \dots, a_k) \left(\prod_{i=1}^k (-1)^{a_i-1}\right) \left(\bigwedge_{j=1}^n \varphi(j)\right)$$ ,
where $$\operatorname{sgn}$$ is the signature of the permutation $$(a_1, a_2, \dots, a_k)$$, and $$\varphi(j)$$ is defined as
:$$\varphi(j) = \begin{cases}\mathbf e_j, & \text{if } j \notin \{a_1, a_2, \dots, a_k\}; \\ \mathbf 1, & \text{otherwise.}\end{cases}$$
== In the Book ==
* Complements are introduced in Section 2.2.
== See Also ==
* [[Duals]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
* [[Duality]]
e639997b044b8d318a9b249b5d5b83d9badbd400
426
425
2024-08-25T06:33:10Z
Eric Lengyel
1
/* Explicit Formula */
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation
:$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation
:$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ .
This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$.
Taking the right or left complement twice causes the sign to change according to the formula
:$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ .
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$
:$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|720px]]
=== Explicit Formula ===
Let $$\mathbf u$$ be a basis element with grade $$k$$. Then $$\mathbf u$$ can be expressed as
:$$\mathbf u = \mathbf e_{a_1} \wedge \mathbf e_{a_2} \cdots \mathbf e_{a_k}$$ ,
where each $$a_i$$ is a unique index satisfying $$1 \le a_i \le n$$. The right complement of $$\mathbf u$$ is given by
:$$\overline{\mathbf u} = \operatorname{sgn}(a_1, a_2, \dots, a_k) \left(\prod_{i=1}^k (-1)^{a_i-k}\right) \left(\bigwedge_{j=1}^n \varphi(j)\right)$$ ,
where $$\operatorname{sgn}$$ is the signature of the permutation $$(a_1, a_2, \dots, a_k)$$, and $$\varphi(j)$$ is defined as
:$$\varphi(j) = \begin{cases}\mathbf e_j, & \text{if } j \notin \{a_1, a_2, \dots, a_k\}; \\ \mathbf 1, & \text{otherwise.}\end{cases}$$
== In the Book ==
* Complements are introduced in Section 2.2.
== See Also ==
* [[Duals]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
* [[Duality]]
8488ca8190e54331e9083ab5bea43e9c4ac3faf1
427
426
2024-08-25T06:42:06Z
Eric Lengyel
1
wikitext
text/x-wiki
''Complements'' are unary operations in geometric algebra that perform a specific type of dualization.
Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation
:$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ .
There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation
:$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ .
Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship
:$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ .
This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$.
Taking the right or left complement twice causes the sign to change according to the formula
:$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ .
The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write
:$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$
:$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ .
To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement,
:$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ ,
and similarly for the left complement.
The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$.
[[Image:Complements.svg|720px]]
=== Explicit Formula ===
In an $$n$$-dimensional algebra, suppose the volume element is given by
:$${\large\unicode{x1D7D9}} = m (\mathbf e_1 \wedge \mathbf e_2 \wedge \cdots \wedge \mathbf e_n)$$ ,
where $$m = \pm 1$$. Let $$\mathbf u$$ be a basis element with grade $$k$$. Then $$\mathbf u$$ can be expressed as
:$$\mathbf u = \mathbf e_{a_1} \wedge \mathbf e_{a_2} \wedge \cdots \wedge \mathbf e_{a_k}$$ ,
where each $$a_i$$ is a unique index satisfying $$1 \le a_i \le n$$. The right complement of $$\mathbf u$$ is given by
:$$\overline{\mathbf u} = m \operatorname{sgn}(a_1, a_2, \dots, a_k) \left(\prod_{i=1}^k (-1)^{a_i-k}\right) \left(\bigwedge_{j=1}^n \varphi(j)\right)$$ ,
where $$\operatorname{sgn}$$ is the signature of the permutation $$(a_1, a_2, \dots, a_k)$$, and $$\varphi(j)$$ is defined as
:$$\varphi(j) = \begin{cases}\mathbf e_j, & \text{if } j \notin \{a_1, a_2, \dots, a_k\}; \\ \mathbf 1, & \text{otherwise.}\end{cases}$$
== In the Book ==
* Complements are introduced in Section 2.2.
== See Also ==
* [[Duals]]
* [[Grade and antigrade]]
* [[Bulk and weight]]
* [[Reverses]]
* [[Duality]]
d56b31e4d6c073e053ab0e2a7fdcb95c77872c57
Line
0
7
429
365
2024-12-22T00:49:31Z
Eric Lengyel
1
wikitext
text/x-wiki
__NOTOC__
[[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ .
The components $$(l_{vx}, l_{vy}, l_{vz})$$ correspond to the line's direction, and the components $$(l_{mx}, l_{my}, l_{mz})$$ correspond to the line's moment. (These are equivalent to the six Plücker coordinates of a line.) To satisfy the [[geometric constraint]], the components of $$\boldsymbol l$$ must satisfy the equation
:$$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ ,
which means that, when regarded as vectors, the direction and moment of a line are perpendicular.
The [[bulk]] of a line is given by its $$mx$$, $$my$$, and $$mz$$ coordinates, and the [[weight]] of a line is given by its $$vx$$, $$vy$$, and $$vz$$ coordinates. A line is [[unitized]] when $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$. The [[attitude]] of a line is the vector $$l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ corresponding to its direction.
When used as an operator in the sandwich with the [[geometric antiproduct]], a line is a specific kind of [[motor]] that performs a 180-degree rotation about itself.
<br clear="right" />
== Lines at Infinity ==
[[Image:line_infinity.svg|400px|thumb|right|'''Figure 2.''' A line at infinity consists of all points at infinity in directions perpendicular to the moment $$\mathbf m$$.]]
If the weight of a line is zero (i.e., its $$vx$$, $$vy$$, and $$vz$$ coordinates are all zero), then the line is contained in the horizon infinitely far away in all directions perpendicular to its moment $$\mathbf m = (l_{mx}, l_{my}, l_{mz})$$, regarded as a vector, as shown in Figure 2. Such a line cannot be unitized, but it can be normalized by dividing by its [[bulk norm]].
When the moment $$\mathbf m$$ is regarded as a bivector, a line at infinity can be thought of as all directions $$\mathbf v$$ parallel to the moment, which satisfy $$\mathbf m \wedge \mathbf v = 0$$.
<br clear="right" />
== Skew Lines ==
[[Image:skew_lines.svg|400px|thumb|right|'''Figure 3.''' The line $$\mathbf j$$ connecting skew lines.]]
Given two skew lines $$\boldsymbol l$$ and $$\mathbf k$$, as shown in Figure 3, a third line $$\mathbf j$$ that contains a point on each of the lines $$\boldsymbol l$$ and $$\mathbf k$$ is given by the axis of the [[motor]] $$\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}$$. The line $$\mathbf j$$ can be found by first calculating the line
:$$\mathbf i = [\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_- = (l_{vy} k_{vz} - l_{vz} k_{vy})\mathbf e_{41} + (l_{vz} k_{vx} - l_{vx} k_{vz})\mathbf e_{42} + (l_{vx} k_{vy} - l_{vy} k_{vx})\mathbf e_{43} + (l_{vy} k_{mz} - l_{vz} k_{my} + l_{my} k_{vz} - l_{mz} k_{vy})\mathbf e_{23} + (l_{vz} k_{mx} - l_{vx} k_{mz} + l_{mz} k_{vx} - l_{mx} k_{vz})\mathbf e_{31} + (l_{vx} k_{my} - l_{vy} k_{mx} + l_{mx} k_{vy} - l_{my} k_{vx})\mathbf e_{12}$$
and then orthogonalizing its direction and moment to obtain
:$$\mathbf j = i_{vx} \mathbf e_{41} + i_{vy} \mathbf e_{42} + i_{vz} \mathbf e_{43} + (i_{mx} - s i_{vx})\mathbf e_{23} + (i_{my} - s i_{vy})\mathbf e_{31} + (i_{mz} - s i_{vz})\mathbf e_{12}$$ ,
where
:$$s = \dfrac{i_{vx}i_{mx} + i_{vy}i_{my} + i_{vz}i_{mz}}{i_{vx}^2 + i_{vy}^2 + i_{vz}^2}$$ .
If $$l_{vx}k_{vx} + l_{vy}k_{vy} + l_{vz}k_{vz} = 0$$, meaning that the directions of the two lines are perpendicular, then $$\mathbf j = \mathbf i$$.
The direction of $$\mathbf j$$ is perpendicular to the directions of $$\boldsymbol l$$ and $$\mathbf k$$, and it contains the closest points of approach between $$\boldsymbol l$$ and $$\mathbf k$$. The points themselves can then be found by calculating $$(\mathbf j \wedge \operatorname{att}(\boldsymbol l)) \vee \mathbf k$$ and $$(\mathbf j \wedge \operatorname{att}(\mathbf k)) \vee \boldsymbol l$$, where $$\operatorname{att}$$ is the [[attitude]] function.
<br clear="right" />
== In the Book ==
* Homogeneous lines are discussed in Section 2.4.2.
== See Also ==
* [[Point]]
* [[Plane]]
f32b62f3555d966804b0fdd333431ae9c3df8060
Point
0
81
430
364
2024-12-22T00:49:46Z
Eric Lengyel
1
wikitext
text/x-wiki
__NOTOC__
[[Image:point.svg|400px|thumb|right|'''Figure 1.''' A point is the intersection of a 4D vector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ .
All points possess the [[geometric constraint]].
The [[bulk]] of a point is given by its $$x$$, $$y$$, and $$z$$ coordinates, and the [[weight]] of a point is given by its $$w$$ coordinate. A point is [[unitized]] when $$p_w^2 = 1$$.
When used as an operator in a sandwich with the [[geometric antiproduct]], a point is a specific kind of [[flector]] that performs an [[inversion]] through itself.
A [[translation]] operator $$\mathbf T$$ that moves a point $$\mathbf p$$ to the origin is given by
:$$\mathbf T = \underline{\mathbf p} \vee \mathbf e_{321} + 2\mathbf p \wedge \mathbf e_{321} = -p_{x\vphantom{y}} \mathbf e_{23} - p_y \mathbf e_{31} - p_{z\vphantom{y}} \mathbf e_{12} + 2p_w {\large\unicode{x1D7D9}}$$ .
== Points at Infinity ==
If the weight of a point is zero (i.e., its $$w$$ coordinate is zero), then the point is contained in the horizon infinitely far away in the direction $$(x, y, z)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
<br clear="right" />
== In the Book ==
* Homogeneous points are discussed in Section 2.4.1.
== See Also ==
* [[Line]]
* [[Plane]]
b04bf677f3b1632acb1a32edcd2bedcf2a02a89c
Plane
0
61
431
395
2024-12-22T00:49:53Z
Eric Lengyel
1
wikitext
text/x-wiki
__NOTOC__
[[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]]
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ .
All planes possess the [[geometric constraint]].
The [[bulk]] of a plane is given by its $$w$$ coordinate, and the [[weight]] of a plane is given by its $$x$$, $$y$$, and $$z$$ coordinates. A plane is [[unitized]] when $$g_x^2 + g_y^2 + g_z^2 = 1$$. The [[attitude]] of a plane is the bivector $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ corresponding to its normal.
When used as an operator in the sandwich with the [[geometric antiproduct]], a plane is a specific kind of [[flector]] that performs a [[reflection]] through itself.
A [[complement translation]] operator $$\mathbf T$$ that moves a plane $$\mathbf g$$ to the horizon is given by
:$$\mathbf T = \underline{\mathbf g} \wedge \mathbf e_{4} + 2\mathbf g \vee \mathbf e_4 = g_{x\vphantom{y}} \mathbf e_{41} + g_y \mathbf e_{42} + g_{z\vphantom{y}} \mathbf e_{43} + 2g_w$$ .
== Plane at Infinity ==
If the weight of a plane is zero (i.e., its $$x$$, $$y$$, and $$z$$ coordinates are all zero), then the plane lies at infinity in all directions. Such a plane is normalized when $$g_w = \pm 1$$. This is the ''horizon'' of three-dimensional space.
<br clear="right" />
== In the Book ==
* Homogeneous planes are discussed in Section 2.4.3.
== See Also ==
* [[Point]]
* [[Line]]
1a6c9e7f7306ed8ce1f00c2831329eb69767e235
Metric
0
183
433
2024-12-22T08:49:54Z
Eric Lengyel
1
Redirected page to [[Metrics]]
wikitext
text/x-wiki
#REDIRECT [[Metrics]]
fcbe1745c2df4f4d52a418ced4d4c3625afd513f
Errata
0
179
434
393
2025-02-12T21:21:24Z
Eric Lengyel
1
wikitext
text/x-wiki
This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page. If you believe you have found an error that should be added to this list, please email the author (lengyel@terathon.com).
== Fourth Printing and Earlier ==
* '''Page 12.''' Right before Equation (1.25), the expression for the magnitude of the projection of $$\mathbf u$$ onto the line should be $$|\mathbf u \cdot \mathbf v| / \Vert\mathbf v\Vert$$.
== Third Printing and Earlier ==
* '''Page 70.''' In the line following Equation (2.71), the product of the bulks should use the antiwedge product and appear as $$\mathbf a_\unicode["segoe ui symbol"]{x25CF} \vee \mathbf b_\unicode["segoe ui symbol"]{x25CF}$$.
== Second Printing and Earlier ==
* '''Page 248.''' In Equation (5.27), the operator $$\mathbf D$$ should be dualized as $$\mathbf D^\unicode["segoe ui symbol"]{x2605}$$. It should also be dualized in the first factor of the sandwich product in the sentence that follows this equation.
== First Printing ==
* '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. The table should look like the one on the wiki page for [[duals]].
* '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54.
* '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35.
9370b3c34cf1560d2db93809867779ea3b61dccf